POST请求的坑
使用wx.request
向服务器提交数据时遇到的坑
1、header
wx.request
默认的是使用GET方法,content-type
为application/json
,但是对于普通的POST方法向服务器提交数据,我们需要修改header如下:
method: 'POST',
header: {
"content-type": "application/x-www-form-urlencoded"
},
2、多层级JSON
这种情况比较特殊。一般情况下POST请求会自动将data
字段中的数据转换成JSON,所以我们的header写法如1中所述。
这次做的点餐系统中,需要向服务器提交的数据中又包含JSON字段:
data: {
openid: "test",
desk_num: that.data.tableid,
order: that.data.currOrder
},
method: 'POST',
header: {
"content-type": "application/x-www-form-urlencoded"
},
其中order是对应的用户订单列表。但是在测试的过程中,服务器后端接收到的结果如下:
服务器端读不出order的内容。这种情况下header仍要换成默认的格式:
method: 'POST',
header: {
"content-type": "application/json"
},
这样服务器就可以正常获取order
字段的内容了。