带有Multipart / form-data的PUT请求仅在firefox中失败

时间:2019-02-01 14:39:00

标签: node.js ajax firefox multiparty

我已经在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似乎没有在网络检查器中显示它。

我做错什么了吗?

0 个答案:

没有答案