【发布时间】:2017-12-08 17:17:50
【问题描述】:
我有一个返回 content-type: "multipart/form-data; charset=utf-8" 内容的 API。但是,在我的 nodejs 应用程序中,当我通过 superagent 进行以下调用时:
request
.get(ApiUrl + id)
.set('Authorization', basicHttpAuth)
.set('client_id', clientId)
.set('client_secret', clientSecret)
.end(function (err, res) {
if (err) {
callback(null, err)
console.log(err);
}
else {
callback(null, res);
}
})
我收到此错误:
错误:错误的内容类型标头,没有多部分边界
知道有什么问题吗?
堆栈跟踪:
Error: bad content-type header, no multipart boundary
at IncomingForm._parseContentType (/Users/mike/Svr/Server/node_modules/formidable/lib/incoming_form.js:271:19)
at IncomingForm.writeHeaders (/Users/mike/Svr/Server/node_modules/formidable/lib/incoming_form.js:142:8)
at IncomingForm.parse (/Users/mike/Svr/Server/node_modules/formidable/lib/incoming_form.js:110:8)
at ClientRequest.<anonymous> (/Users/mike/Svr/Server/node_modules/superagent/lib/node/index.js:869:9)
at Object.onceWrapper (events.js:316:30)
at emitOne (events.js:115:13)
at ClientRequest.emit (events.js:210:7)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:564:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
at TLSSocket.socketOnData (_http_client.js:453:20) response: undefined }
这是服务器响应头:
Access-Control-Allow-Origin →*
Connection →keep-alive
Content-Length →44691
Content-Type →multipart/form-data; charset=utf-8
Date →Wed, 05 Jul 2017 03:44:23 GMT
正文是一大块文本/字符串。
【问题讨论】:
-
我怀疑你是否被允许使用
--作为边界的后缀。 -
好的,但删除没有帮助
-
为
GET请求设置multipart/form-data无论如何都没有意义。你确定它不应该是POST请求吗?此外,看起来您实际上并没有上传数据,因此可能根本不需要Content-Type标头。 -
好的,但即使删除也不起作用。错误保持不变。是的,我没有上传任何数据,但我收到的内容类型为“multipart/form-data”
-
问题是错误的来源。我最初认为是服务器发出了该错误,但现在我明白它是客户端?我不希望
superagent解析multipart/form-data响应,那么它来自哪里?你能发布属于错误的堆栈跟踪吗?
标签: node.js multipartform-data superagent