Запрос PUT с Multipart / form-data не выполняется только в Firefox - PullRequest
0 голосов
/ 01 февраля 2019

Я пробовал это на 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 просто не показывает его в инспекторе сети.

Я что-то не так делаю?

...