ajax请求
- 一定要跟后台确认是什么类型的请求(post、get、其它)。
- 一定要跟后台确认入参的数据类型,最近在写小程序遇到的一个问题,代码如下,自认为这样传没问题,都是从其它写过的项目拷贝过来的,改改地址,入参就行,结果导致出现了问题,调用接口一直是404,后来才发现前端传给后端的是字符串的json,而后端需要的是json格式。一定不要自认为啊。
这是小程序的说明:
data 参数说明 最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:
对于 GET 方法的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...) 对于 POST 方法且 header['content-type'] 为 application/json 的数据,会对数据进行 JSON 序列化 对于 POST 方法且 header['content-type'] 为 application/x-www-form-urlencoded 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
wx.request({
url: 'test.php', //仅为示例,并非真实的接口地址
data: {
x: '',
y: ''
},
header: {
'content-type': 'application/x-www-form-urlencoded' // 请注意这
},
method: 'POST',
success (res) {
console.log(res.data)
}
})
复制代码
- get请求时如果直接把参数写在问好后一定要记得转码,有一些框架并没有对直接写都问好后的参数进行处理,test.php?scn=apsQrhlgqqb8cb2lbinVrW2cnjOgthvBLXc%2BdlH3o9YtknjWSDY9dziPERYwvI%2FG%2BwR
- jsonp跨域请求只能是get请求