Сообщение AJAX FormData — 503 Сервис недоступен

Я много раз искал эту проблему, но безуспешно, или, может быть, я упустил проблему. Пожалуйста, передайте мне все, что я мог сделать, чтобы улучшить объяснение.

У меня есть вход «Файл», который требует Php использование файла Ajax на ‘менять’ вот так:

$(document).on('change', 'input[name="photo"]', function(){

var file = this.files[0];
var formData = new FormData();
var user = localStorage.getItem("user");

formData.append('_file', file);
formData.append('_user', user);

$.ajax({
type: "POST",
cache: false,
url: ip + "php/insert_img.php",
data: formData,
contentType: false,
processData: false,

success: function (e) {
// do something
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus, errorThrown);
}
});

});

Предполагается, что это приложение для телефонной связи, и я использую эмулятор Ripple Chrome с включенной для тестирования платформой Apache Cordova / PhoneGap.

Теперь все работает как положено при использовании localhost, и PHP печатает formData так, как должно, однако, когда я использую тот же PHP-файл, загруженный на сервер (отсюда и переменная ‘ip’ в Ajax URL вариант), это другая история.

Через некоторое время он возвращает ошибка и при проверке инструментов разработчика Chrome> вкладка «Сеть» я вижу, что «Код состояния» запроса: 503 Сервис недоступен.
НО, если я поменяю данные установка на что-либо кроме FormData (), это работает.

Похоже, проблема связана с настройками сервера, но я не знаю, в чем проблема.

3

Решение

Я сталкивался с этой проблемой много раз при использовании AJAX, поэтому вот мои первые мысли:

Определен ли «ip»? url: ip + «php / insert_img.php»

Также я обнаружил, что удаление некоторых дополнительных опций AJAX устранило проблему. Измененный код ниже:

$(document).on('change', 'input[name="photo"]', function(){

var file = this.files[0];
var formData = new FormData();
var user = localStorage.getItem("user");

formData.append('_file', file);
formData.append('_user', user);

$.ajax({
type: "POST",
url: ip + "php/insert_img.php",
data: formData,
success: function (e) {
// do something
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus, errorThrown);
}
});

});

Надеюсь это поможет.

———- РЕДАКТИРОВАТЬ ———-

После небольшого поиска я считаю, что проблема заключается в том, где вы добавляете _file а также _user данные. Если значения этих данных являются массивом, вам придется его «зачеркнуть»:

formData.append('_file', JSON.stringify(file));
formData.append('_user', JSON.stringify(user));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]