request
用于发起网络请求 注意:此 API 不支持 promise 调用
支持
安装
$ npm install @uni/request --save
or
$ npm install @uni/apis --save
示例
import request from '@uni/request';
request({
url: 'https://alibaba.github.io/rax/',
method: 'POST',
data: {
from: 'Rax',
},
dataType: 'json',
success: (res) => {
console.log('success', res);
},
fail: (res) => {
console.log('fail', res);
},
complete: (res) => {
console.log('complete', res);
}
});
request({
url: 'http://suggest.taobao.com/sug',
method: 'JSONP',
data: {
code: 'utf-8',
q: '卫衣'
},
jsonpCallback: 'cb',
jsonpCallbackProp: 'callback',
timeout: 5000,
success: (res) => {
console.log('success', res);
},
fail: (res) => {
console.log('fail', res);
},
complete: (res) => {
console.log('complete', res);
}
});
你也可以从大包引入:
import { request } from '@uni/apis';
参数
成员 | 类型 | 描述 | 必选 | 默认值 |
---|---|---|---|---|
options |
object |
是 | - | |
options.url |
string |
请求的URL地址 | 是 | - |
options.headers |
object |
设置请求的头部 | 否 | { 'Content-Type': 'application/json' } |
options.method |
string |
可用的值有:GET/POST/PUT/DELETE/PATCH/HEAD/JSONP,小程序中仅支持GET/POST/JSONP | 否 |
GET |
options.data |
object |
- GET请求或POST请求设置headers['content-Type'] 为 application/x-www-form-urlencoded 时会拼接到URL中- 其他情况请求会转换为JSON字符串以请求体的形式给服务端 |
否 | - |
options.timeout |
number |
超时时间 | 否 | 20000 (ms) |
options.dataType |
string |
期望返回的数据格式, json 或者 text ,若转换失败,则原样返回 |
否 |
json |
options.jsonpCallback |
string |
jsonp的 callback 方法名,默认 __uni_jsonp_handler ,仅在 method 为 JSONP 时生效 |
否 |
__uni_jsonp_handler |
options.jsonpCallbackProp |
string |
jsonp的 callback 属性名,默认 callback ,仅在 method 为 JSONP 时生效 |
否 |
callback |
options.success |
Function |
成功的回调 | 否 | - |
options.fail |
Function |
失败的回调 | 否 | - |
options.complete |
Function |
结束的回调 | 否 | - |
不通用参数(由于破坏了一码多端的能力,不推荐使用)
<Response>
请求成功返回:成员 | 类型 | 描述 |
---|---|---|
response | object |
- |
response.data |
string |
请求返回数据,按照dataType中声明的类型转换,若转换失败则原样返回 |
response.headers |
object |
请求的返回头部 |
response.status |
number |
请求返回的状态码 |
不通用返回参数(由于破坏了一码多端的能力,不推荐使用)
属性 | 类型 | 描述 | 支持 |
---|---|---|---|
cookies | Array.<string> |
开发者服务器返回的 cookies,格式为字符串数组 | |
profile | Object |
网络请求过程中一些调试信息 |
请求失败返回:
成员 | 类型 | 描述 |
---|---|---|
error | object |
- |
error.code |
number |
错误码 |
error.message |
string |
错误说明 |
返回 RequestTask
请求任务对象
方法:
RequestTask.abort() 中断请求任务
不通用方法(由于破坏了一码多端的能力,不推荐使用)
仅微信支持以下方法 RequestTask.onHeadersReceived(function callback) 监听 HTTP Response Header 事件。会比请求完成事件更早
RequestTask.offHeadersReceived(function callback) 取消监听 HTTP Response Header 事件
示例代码:
import request from '@uni/request';
const requestTask = request({
url: 'test.php', //仅为示例,并非真实的接口地址
data: {
x: '' ,
y: ''
},
header: {
'content-type': 'application/json'
},
success (res) {
console.log(res.data)
}
})
requestTask.abort() // 取消请求任务