node.js正文解析器对内容类型的错误解释:x-www-form-urlencoded和form-data-JSON
我有一个客户的请求node.js正文解析器对内容类型的错误解释:x-www-form-urlencoded和form-data-JSON,node.js,body-parser,Node.js,Body Parser,我有一个客户的请求 Content-type: Content-Type:application/x-www-form-urlencoded; charset=UTF-8 和以下格式的数据(json): 一个console.log(request.body)为我提供如下内容: { '{"jsonrpc":"2.0","method":"print","params":{"id":"lp0","doc":"<section> <p>': '', 'nbsp;': '',
Content-type: Content-Type:application/x-www-form-urlencoded; charset=UTF-8
和以下格式的数据(json):
一个console.log(request.body)为我提供如下内容:
{ '{"jsonrpc":"2.0","method":"print","params":{"id":"lp0","doc":"<section>
<p>': '',
'nbsp;': '',
'nbsp;sitedemo': '',
'nbsp;':'',
' </p><br><barcode>':''
'.......}'}
{{“jsonrpc”:“2.0”,“方法”:“打印”,“参数”:{“id”:“lp0”,“文档”:”
“:”,
“nbsp;”:“,
“sitedemo”:“,
“nbsp;”:“,
“
”:“
'.......}'}
json对象的键由行和空值组成
如何检索客户端发送的确切对象(我无法访问客户端)
谢谢。当客户端在头文件中声明请求主体是URL编码的,但它正在发送JSON时,客户端被破坏 如果确实是这种情况,您需要防止
主体解析器对这些请求进行解码,并手动执行解码
与此相反:
app.use(bodyParser.urlencoded({ extended: true }));
试试这个:
app.use(
bodyParser.raw({ type : 'application/x-www-form-urlencoded' }),
function(req, res, next) {
try {
req.body = JSON.parse(req.body)
} catch(e) {
req.body = require('qs').parse(req.body.toString());
}
next();
}
);
当客户端在头文件中声明请求主体是URL编码的,但它发送的是JSON时,它就被破坏了
如果确实是这种情况,您需要防止主体解析器对这些请求进行解码,并手动执行解码
与此相反:
app.use(bodyParser.urlencoded({ extended: true }));
试试这个:
app.use(
bodyParser.raw({ type : 'application/x-www-form-urlencoded' }),
function(req, res, next) {
try {
req.body = JSON.parse(req.body)
} catch(e) {
req.body = require('qs').parse(req.body.toString());
}
next();
}
);
“我无法访问客户端”-客户端已损坏。你不应迎合他们的错误。坚持让他们解决问题。“我无法访问客户端”-客户端已损坏。你不应迎合他们的错误。坚持让他们解决问题。