用来请求服务器数据发起的是HTTPS请求,同时它需要在微信公众平台配置HTTPS服务器域名,一个月可申请三次修改,否则无法使用wx.request请求服务器数据。WebSocket会话,文件上传下载服务器域名都是如此。
《wx.request(object)参数说明》
字段 | 是否必填 | 数据类型 | 含义 |
---|---|---|---|
url | 是 | string | 开发者服务器接口地址。 |
data | 否 | 请求参数。 | |
header | 否 | 请求头。不能设置refer。content-type的默认值为“application/json” | |
method | 否 | 默认值为GET。有效值为GET、POST、DELETE、PUT、TRACE、CONNECT、OPTIONS。 | |
dataType | 否 | 默认JSON。如果设置了dataType为.json文件,则会尝试对响应数据组一次JSON.parse;设置其它值,则不对返回的内容进行JSON.parse。 | |
responseType | 否 | 响应的数据类型。text表示的响应数据为文本,arraybuffer表示响应的数据为ArrayBuffer。 | |
success | 否 | function | 调用成功的回调函数 |
fail | 否 | function | 调用失败的回调函数 |
complete | 否 | function | 调用结束的回调函数(成功、失败都会执行) |
wx.request无法请求HTTP域名的服务器,访问服务器路径的时候,会到公众开发平台里找他我们配置的HTTP服务器域名,如果域名存在就让访问,否则不让访问。
服务器域名请在“小程序后台”-“开发”-“开发设置”-"服务器域名"中进行配置。配置时应注意以下几点:
Page({
onLoad:function () {
wx.request({
url: 'https://....',
data:{projectid:"123"},
method:"GET",
success:function (res) {},
fail:function () {},
complete:function () {},
})
}
});
服务器请求默认超过时间和最大超过时间都是60秒,超过时间可以在app.json文件或game.json文件中通过networktimeout配置。
最终发送给服务器的数据是string类型,如果传入的data不是string类型会被转成string。
发起wx.request请求时也创建了一个requestTask对象,这个对象提供了以下三种方法:
Page({
onLoad:function () {
var requestTask = wx.request({
url: 'https://....',
data:{projectid:"123"},
method:"GET",
success:function (res) {},
fail:function () {},
complete:function () {},
})
requestTask.onHeadersReceived(function (res) {
console.log("监听HTTP Response Header事件")
})
requestTask.offHeadersReceived(function (res) {
console.log("取消监听HTTP Response Header事件")
})
requestTask.abort();// 中断请求任务
}
});