三国纷争
放开让我来!问题完全是因为 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});