У меня действительно странная проблема, которая не появлялась, пока я не отправил свой код на работающий сервер и не попытался использовать его с моим iPhone.
Это отправка скрипту node.js, который я 'мы настроили протоколирование всех входящих запросов (вместе с заголовками и методами), и в журналах ничего не показывается, когда возникает проблема, представленная ниже.
Так или иначе:
$('#addrecord').on('submit', function(e) {
e.preventDefault();
var url = '/admin/app/addrecord'
var data = $('#addrecord')[0];
var formData = new FormData(data);
$.ajax({ // create an AJAX call...
data: formData,
processData: false,
contentType: false,
cache: false,
type: "POST", // GET or POST
url: url, // the file to call
success: function(response) { // on success..
if (response.name == 200) {
if (response.message == "add") {addComplete(response.address);}
else {editComplete(response.address);};
}
else {
console.log("Form Rejected");
}
},
error: function(response) {
console.log("Error - " + JSON.stringify(response));
}
});
});
Это в сочетании собычный <form id="addrecord" method="post" enctype="multipart/form-data" role="form"> ... </form>
в моем html-файле.
Так что проблема в том, что у этой формы есть поле ввода <input type="file" id="photo" name="photo">
.Если я пытаюсь отправить форму без изображения, выбранного в этом входе, форма ничего не отправляет и просто зависает.Сервер абсолютно ничего не получает (помните, я регистрирую каждый запрос).
Теперь, если я использую ввод файла, чтобы выбрать изображение со своего телефона, или если я редактирую HTML, чтобы удалить вводполе file, запрос Ajax запускается без перебоев, и все отлично воспринимается моим сервером node.js.
Я действительно озадачен этим.Есть идеи?