前端代码,类似于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
});
添加回答
举报
0/150
提交
取消