我有这个代理人:
router.post('/proxy/foo', function (req, res, next) {
const proxy = http.request({
method: 'POST',
port: 4000,
hostname: 'localhost',
path: `/files/foo`,
headers: {
'Content-Type':'multipart/form-data'
}
},
function (resp) {
resp.pipe(res).once('error', next);
});
req.pipe(proxy).once('error', next);
});
我正在使用以下标题向此代理处理程序发送POST请求:
{ 'content-type': 'multipart/form-data; boundary=--------------------------842381361531134328792158',
'cache-control': 'no-cache',
'postman-token': '1a5daa0b-2643-45bc-accc-3f7f3ced948d',
'user-agent': 'PostmanRuntime/7.1.1',
accept: '*/*',
host: 'localhost:3040',
cookie: 'cdt_app_token=foobar',
'accept-encoding': 'gzip, deflate',
'content-length': '176',
connection: 'keep-alive' }
鉴于此,我收到了这个错误:
错误:内容类型缺失边界
所以我更改了它,以便代理请求使用与原始请求相同的标头,这是有道理的:
const proxy = http.request({
method: 'POST',
port: 4000,
hostname: 'localhost',
path: `/files/foo`,
headers: Object.assign({}, req.headers) // <<<<<<<<<
},
function (resp) {
resp.pipe(res).once('error', next);
});
现在它有效,因为特别是这个标题:
'content-type': 'multipart/form-data; boundary=--------------------------842381361531134328792158'
那边界的东西是什么?