Код input'а для обращения:
Есть простейший js код отправки запроса:
files = $('#my_hidden_file')[0].files;
event.preventDefault(); // остановка дефолтного события для текущего элемента - клик для <a> тега
// ничего не делаем если files пустой
if (typeof files == 'undefined') return;
// создадим объект данных формы
var data = new FormData();
// заполняем объект данных файлами в подходящем для отправки формате
$.each(files, function (key, value) {
data.append(key, value);
});
// добавим переменную для идентификации запроса
data.append('my_file_upload', 1);
// AJAX запрос
$.ajax({
url: 'http://127.0.0.1:5000/filter',
type: 'POST',
data: data,
cache: false,
// отключаем обработку передаваемых данных, пусть передаются как есть
processData: false,
// отключаем установку заголовка типа запроса. Так jQuery скажет серверу что это строковой запрос
contentType: false,
// функция успешного ответа сервера
success: function (respond, status, jqXHR) {
// ОК - файлы загружены
if (typeof respond.error === 'undefined') {
// выведем пути загруженных файлов в блок '.ajax-reply'
var files_path = respond.files;
var html = '';
$.each(files_path, function (key, val) {
html += val + '<br>';
})
console.log(html);
}
// ошибка
else {
console.log('ОШИБКА: ' + respond.data);
}
},
// функция ошибки ответа сервера
error: function (jqXHR, status, errorThrown) {
console.log('ОШИБКА AJAX запроса: ' + status, jqXHR);
}
});
На приёмке (127.0.0.1:5000/filter) стоит Flask:
Снизу отображается вывод в консоль, питон принимает всё правильно.
Но на фронте возвращается:
Почему так может происходить?