wx.request请求的header中content-type 默认为application/json,如果我们想换种方式比如用“application/x-www-form-urlencoded”会发现在请求头信息中并没有取代默认的application/json而是新增了这种方式,另外在用jquery.ajax请求时即便同样使用application/json方式来请求,得到的数据格式也相同,无论用什么请求方式ajax都会将请求数据转换为&name1=value的形式,这样在根据content-type来解析请求数据时就会出现问题,
不知道微信有意这样做,还是它根本就是个bug…
微信小程序发送https请求,本地调试时可以用http,如果在手机上测试时校验请求方式和域名,不合法报错:
为了方便请求,可以对wx.request做一个封装
var app = getApp();
function request(url,postData,doSuccess,doFail,doComplete){
var host = getApp().conf.host;
wx.request({
url:host+url,
data:postData,
method:"POST",
success;function(res){
if(typeof doSuccess == "function"){
doSuccess(res);
}
},
fail:function(){
if(typeof soFail =="function"){
doFail();
}
},
complete:function(){
if(typeof doComplete == "function"){
doComplete();
}
}
})
}
module.exports.request = request;