Я пытаюсь загрузить файл с помощью Ajax на сервер Nodejs.Ошибка загрузки файла
Ajax код:
var url = 'http://<ip:port>/upload/';
var formValues = $("#files").get(0).files;
$.ajax({
url: url,
type: 'POST',
data: formValues,
processData: false,
cache: false,
beforeSend: function(xhr) {
xhr.setRequestHeader('content-type', 'multipart/form-data');
},
success: function (data) {
console.log("Store details: %j", data);
Backbone.history.navigate('store');
window.location.reload();
}
});
Я использую Busboy в узле сервера и он дает мне эту ошибку, когда я пытаюсь разобрать заголовки запроса для инициализации объекта Busboy.
Error: Multipart: Boundary not found
at new Multipart (/home/ubuntu/MoojicDashboard/node_modules/busboy/lib/types/multipart.js:58:11)
at Multipart (/home/ubuntu/MoojicDashboard/node_modules/busboy/lib/types/multipart.js:26:12)
at Busboy.parseHeaders (/home/ubuntu/MoojicDashboard/node_modules/busboy/lib/main.js:62:22)
at new Busboy (/home/ubuntu/MoojicDashboard/node_modules/busboy/lib/main.js:21:10)
Но если я не установить тип содержимого для мультисекционного/форм-данных запрос отброшен помощник официанта.
Я даже пробовал использовать пакет multer но и дать мне ту же ошибку. (Позже я узнал, что это было построено на помощника официанта.)
Я даже попытался установить CONTENTTYPE ложь.
$.ajax({
url: url,
type: 'POST',
data: formValues,
processData: false,
cache: false,
contentType: false,
success: function (data) {
console.log("Store details: %j", data);
Backbone.history.navigate('store');
window.location.reload();
}
});
, чтобы заставить JQuery не устанавливать тип содержимого по умолчанию, но он тоже не работал.
Настройка contentType: «multipart/form-data» также не работает и дает мне такую же ошибку «Multipart: Boundary not found». Поэтому любой может помочь мне выйти из этой ошибки.