当内容类型和内容编码标头一起发送时,表达js拒绝发布请求(400错误请求)
Posted
技术标签:
【中文标题】当内容类型和内容编码标头一起发送时,表达js拒绝发布请求(400错误请求)【英文标题】:expressjs rejecting post request (400 bad request) when content-type and content-ecoding headers are sent together 【发布时间】:2020-08-11 17:02:25 【问题描述】:app.use(
express.text(type: 'text/xml'),
express.json(type: 'application/json'),
other middlewares...) ```
发布方法头: 连接:'保持活动', '内容长度':'1082', '内容编码':'gzip', “内容类型”:“文本/xml”, 接受:'/', '接受编码':'gzip', 来源:'chrome-extension://sxwwwagimdiliamlcqswqsw', '接受语言': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'
Also I have tried express.raw with a wildcard for the type, but the response
is always 400.
```express.raw(type:'*/*', inflate:true), (req, res, next)=>console.log(req.body); next() ,```
【问题讨论】:
【参考方案1】:在找到这个nodejs 教程后,我能够修复它。 关键是不要使用任何 express 解析器,而是使用 vanilla nodejs。
app.use(
(req, res, next)=>
let data = []
req.on('data', chunk =>
data.push(chunk)
)
req.on('end', () =>
req.body = data.toString()
);
next()
)
【讨论】:
以上是关于当内容类型和内容编码标头一起发送时,表达js拒绝发布请求(400错误请求)的主要内容,如果未能解决你的问题,请参考以下文章
为啥编码标头内容类型:text/html;在 Outlook 插件中使用 MailItem 时缺少 GMAIL 的 SMTP 服务器:SMTP.GMAIL.COM?
当客户端未在标头中发送内容长度时,rails v6 如何填充 REQUEST 的内容长度?
使用“application/x-www-form-urlencoded”内容类型请求标头时,未正确发送 HttpClient 后正文参数