### wx.request(OBJECT)
发起网络请求。**使用前请先阅读说明**。
**OBJECT参数说明:**
| 参数名 | 类型 | 必填 | 默认值 | 说明 | 最低版本 |
| ------------ | ------------------------- | ---- | ---- | ---------------------------------------- | ---------------------------------------- |
| url | String | 是 | | 开发者服务器接口地址 | |
| data | Object/String/ArrayBuffer | 否 | | 请求的参数 | |
| header | Object | 否 | | 设置请求的 header,header 中不能设置 Referer。 | |
| method | String | 否 | GET | (需大写)有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT | |
| dataType | String | 否 | json | 如果设为json,会尝试对返回的数据做一次 JSON.parse | |
| responseType | String | 否 | text | 设置响应的数据类型。合法值:text、arraybuffer | [1.7.0](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/compatibility.html) |
| success | Function | 否 | | 收到开发者服务成功返回的回调函数 | |
| fail | Function | 否 | | 接口调用失败的回调函数 | |
| complete | Function | 否 | | 接口调用结束的回调函数(调用成功、失败都会执行) | |
**success返回参数说明:**
| 参数 | 类型 | 说明 | 最低版本 |
| ---------- | ------------------------- | ------------------------------ | ---------------------------------------- |
| data | Object/String/ArrayBuffer | 开发者服务器返回的数据 | |
| statusCode | Number | 开发者服务器返回的 HTTP 状态码 | |
| header | Object | 开发者服务器返回的 HTTP Response Header | [1.2.0](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/compatibility.html) |
**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/json' // 默认值
},
success: function(res) {
console.log(res.data)
}
})
```
**返回值:**
> 基础库 1.4.0 开始支持,低版本需做[兼容处理](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/compatibility.html)
返回一个 `requestTask` 对象,通过 `requestTask`,可中断请求任务。
**requestTask 对象的方法列表:**
| 方法 | 参数 | 说明 | 最低版本 |
| ----- | ---- | ------ | ---------------------------------------- |
| abort | | 中断请求任务 | [1.4.0](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/compatibility.html) |
**示例代码:**
```
const requestTask = wx.request({
url: 'test.php', //仅为示例,并非真实的接口地址
data: {
x: '' ,
y: ''
},
header: {
'content-type': 'application/json'
},
success: function(res) {
console.log(res.data)
}
})
requestTask.abort() // 取消请求任务
```
#### Bug & Tip
1. `tip`: content-type 默认为 'application/json';
2. `tip`: url 中不能有端口;
3. `bug`: 开发者工具 `0.10.102800` 版本,`header` 的 `content-type` 设置异常;
- 简介
- 第一章 公众号开发
- 使用微信JSSDK
- 接口权限配置
- 分享接口
- 隐藏按钮项
- 微信支付
- 第二章 小程序开发
- 基础知识
- 分包加载
- WXSS样式表
- 配置
- app.json配置
- window
- tabBar
- page.json配置
- 逻辑层
- app.js
- 场景值
- page.js
- 初始化数据
- 生命周期函数
- 页面相关事件处理函数
- 事件处理函数
- 页面实例方法
- 路由
- 文件作用域
- 模块化
- 视图层
- 模板语法
- 列表渲染
- 条件渲染
- 模板
- 事件
- 引用
- WXS语法规范
- WXS数据类型
- WXS控制流程
- WXS基础类库
- 组件
- 视图容器
- view
- scroll-view
- swiper
- movable-view
- cover-view
- 基础组件
- icon
- text
- rich-text
- progress
- 表单组件
- button
- checkbox
- form
- input
- label
- picker
- picker-view
- radio
- slider
- switch
- textarea
- 导航组件
- navigator
- 媒体组件
- audio
- image
- video
- camera
- 地图组件
- map
- 画布组件
- canvas
- 开放能力
- web-view
- 自定义组件
- 组件模版和样式
- Component
- 组件传值
- 组件事件
- Behaviors
- 组件间关系
- 网络请求
- wx.request
- 微信登录
- 获取 openid 和 unionid
- 获取用户信息
- 将 wx.request 封装为 promise
- 上传图片接口封装
- 数据存储
- 存储数据和读取数据
- 获取数据缓存信息
- 移除数据缓存
- 获取用户设置
- openSetting
- getSetting
- 第三章 小游戏开发
- 参考资料