我从快速3模块multipart获取错误{ [Error: unknown transfer-encoding] status: 400 }
。听起来应该发送TE
标题 - 它不是。但是,我已经读过这个标头与正在发送的content-length
标头不兼容。
以下标题已发送:
{
connection: 'keep-alive',
'content-type': 'multipart/form-data; boundary=--------092114122750368',
'content-length': '6983',
host: '******* ',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'accept-encoding': 'identity',
'user-agent': 'Mozilla/3.0 (compatible; Indy Library)'
}
关于可能导致此问题的任何想法?
EDIT1
服务器代码如下:
var port = 80,
express = require('express'),
app;
app = express();
// support JSON, urlencoded, and multipart requests
app.use(express.json({
limit: '50mb'
}));
app.use(express.urlencoded({
limit: '50mb'
}));
app.use(express.multipart({
uploadDir:'./uploads',
limit: '50mb'
}));
app.use(function (err, req, res, next) {
console.log(req.headers);
console.log(err);
});
显然有更多代码,但这是错误实际发生的地方。 req.header
的输出是我上面提供的JSON,{ [Error: unknown transfer-encoding] status: 400 }
的输出位于本文的第一行。我最初在每个app.use
电话后添加了错误回调,但我发现导致此问题的是express.multipart
。
答案 0 :(得分:0)
我们必须添加transfer-encoding: chunked
,因为这是数据的发送方式。我们使用的HTTP库添加了content-length
属性,该属性与transfer-encoding
属性不兼容,但它不会导致服务器出现问题,所以这就是我们解决的问题。