在使用 koa2 的中间件 koa-bodyparser 解析客户端发来的 json 字符串时,发现解析异常,分析后发现,这锅 koa 不背,是发送 post 请求的问题。
【发送表单】
$.ajax({
type: "post",
url: '/dosomething',
data: {'a':'A', 'b':1, 'c': true},
success: function (data) {
// TODO
},
error: function () {
// TODO
}
});
此时,http 请求头里面
Content-Type: application/x-www-form-urlencoded
http 请求的 body,
a=A&b=1&c=true
这种情况下,服务端通常会把所有参数的值解析为字符串。
【发送 json 字符串】
$.ajax({
type: "post",
url: '/dosomething',
data: JSON.stringify({'a':'A', 'b':1, 'c': true}),
contentType: 'application/json', // 这句很重要
success: function (data) {
// TODO
},
error: function () {
// TODO
}
});
此时,http 请求头里面
Content-Type: application/json
http 请求的 body,
{"a":"A","b":1,"c":true}
这种情况下,服务端可以分别解析得到字符串、数字、布尔类型的参数。
*** walker ***
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。