странная проблема или ошибка. Я использую плагин jQuery Form , и он прекрасно работает везде, где принимается в одной форме, где у меня есть одна загрузка файла с enctype:multipart/form-data
в форме. В этой форме я сталкиваюсь с двумя странными вещами ...
- объект JSON, возвращаемый с сервера, пуст!
- В Opera кнопка «Отправить» даже запускает загрузку файлов!
Однако это происходит только тогда, когда я оставляю enctype:multipart/form-data
и input type="file"
в форме. Без этого все работает нормально, и объект JSON возвращается правильно - и в Opera нет загрузки.
HTML:
<form accept-charset="UTF-8" action="/ajax/profiledetails" id="profileAboutMeForm" method="post" novalidate="novalidate" encoding="multipart/form-data" enctype="multipart/form-data">
...
<p class="rel avatarUpload">
<label class="label" for="profileAvatar">Choose Avatar</label>
<img class="profileAvatar avatar30" src="" alt="user">
<input class="fileUpload br3" id="profileAvatar" name="profile[avatar]" type="file">
</p>
...
</form>
JQuery:
$(formId).ajaxSubmit({
type: "POST",
cache: false,
resetForm: reset,
dataType: "text json",
success: function(jsonObject, status) {
console.log("status + ", jsonObject.status: "+ jsonObject.status + ", jsonObject.data: " + jsonObject.data);
Есть идеи, что может вызвать это? Как я мог это исправить?
Спасибо заранее.
редактирование:
Хотя я никогда не пытался зарегистрировать сам объект, и здесь выясняется, что в этом случае (только если задан file-input и enctype) jsonObject является STRING, а не объектом.
if (typeof jsonObject == 'string')
console.log('yes, it's a string'); //yes, it's a string
jsonObject = JSON.parse(jsonObject);
console.log(jsonObject);
Итак, это означает, что у меня снова есть JSObject в моем javascript, и это исправляет мою первую проблему, однако оперная ошибка все еще остается! Есть идеи?