微信小程序及uniapp ,request请求后台时,使用"content-type": "application/x-www-form-urlencoded" 且 post 方式提交数据,则需要注意data数据属性为null传到后台为“null”字符串。
小程序示例:
wx.request({
url: app.globalData.url + "user_login",
header: {
"content-type": "application/x-www-form-urlencoded"
},
data: {
code: null
},
method: "POST",
success: function(res) {
resolve(res);
},
fail: function(res) {
reject(res)
}
});
uniapp示例:
var data = {nickName:null};
uni.request({
url: "http://localhost:8888/user/demo",
data: data,
header: {
"content-type": "application/x-www-form-urlencoded;charset=utf-8",
},
method: "POST",
success: function(res) {
}
})
解决方法:
1、使用application/json 或 get 提交
2、前台删除掉null的属性
//过滤参数null和undefined
if (data) {
for (var key in data) {
if (data[key] == null || typeof(data[key]) == "undefined") {
delete data[key];
}
}
}