猿问

express接受post的json后格式错误,

前端代码,类似于

express代码

https://img.mukewang.com/5c6562eb0001584604230188.jpg

此处的test预想应为

https://img4.mukewang.com/5c6562f3000109d101640072.jpg

实际上是

https://img4.mukewang.com/5c6562fd0001ee5d02110105.jpg

如果去掉JSON.stringify,可以获得正确的值,但如果非要用这个的话(前端代码不能修改的情况下)
node这边有什么方法可以获得正确的值么

一只名叫tom的猫
浏览 501回答 1
1回答

三国纷争

放开让我来!问题完全是因为 request 的 Content-Type 有问题!jQuery Ajax 默认用的是 'application/x-www-form-urlencoded; charset=UTF-8'也就是说 body 部分默认按照 url 解析方式解析,就是 request.body 部分按照 key=value&foo=bar 方式解析,解析后得到 {key:value,foo:bar}. 你传递一个 JSON.stringify 后的 json string, 那就等价于传递 {"a":1}=, 你把 json string 当 key 了!正确姿势:contentType: "multipart/form-data"var data = {    keywords: "...",    name: "123"};                $.ajax({    url: "url",    type: "POST",    dataType: "json",    contentType: "multipart/form-data",    data: JSON.stringify(self.getData())}).done(function (data) {    // todo});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答