为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只名叫tom的猫 2019-02-06 21:51:01
前端代码,类似于express代码此处的test预想应为实际上是如果去掉JSON.stringify,可以获得正确的值,但如果非要用这个的话(前端代码不能修改的情况下)node这边有什么方法可以获得正确的值么
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

放开让我来!


问题完全是因为 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

});


查看完整回答
反对 回复 2019-02-14
  • 1 回答
  • 0 关注
  • 500 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信