Я пробовал это на Edge, Chrome и Opera, и моя загрузка работает нормально, проблема происходит ТОЛЬКО на firefox:
С внешнего интерфейса я отправляю запрос multipart / form-data следующим образом:
$.ajax({
url: `/api/myUpdate/${$scope._id}`,
method: 'PUT',
data:formData,
contentType:false,
processData:false,
cache:false,
success: response =>{
..
},
error: err =>{
..
}
})
Затем на моем сервере nodeJs:
Маршрут:
var multiparty = require('connect-multiparty');
var multipartyMiddleware = multiparty({maxFieldsSize:'200mb'});
app.route('/api/myUpdate/:_id')
.post(users.requiresLogin, multipartyMiddleware, hasAuthorization, myUpdateFn);
При отладке я получаю промежуточное программное обеспечение requirelogin, но оно застревает в multipartyMiddleware, ононикогда не достигает "hasAuthorization" или "myUpdateFn".
Когда истекает время ожидания запроса, я получаю эту ошибку вывода на сервере
Error: Request aborted
at IncomingMessage.onReqAborted (C:\dev\eedweb\node_modules\multiparty\index.js:190:17)
at IncomingMessage.emit (events.js:182:13)
at abortIncoming (_http_server.js:449:9)
at socketOnClose (_http_server.js:442:3)
at Socket.emit (events.js:187:15)
at TCP._handle.close (net.js:610:12)
В результате отладки, которую я сделал, кажется, получаетсязастрял в файле с именем "async_hooks" ... но я не совсем понимаю, что это вообще делает.
Я пробовал с разными размерами загрузки, и это, похоже, не влияет на результат.
Нет никаких сообщений об ошибках на внешнем интерфейсе, и инспектор Firefox не показывает ничего, кроме заголовка на вкладке сети, но объект formdata кажется одинаковым во всех браузерах, и когда я проверяюобъект на сервере узла, похоже, тело сообщения, параметры, файлы и т. д. Firefox просто не показывает его в инспекторе сети.
Я что-то не так делаю?