uni-app的网络请求
- 在官方文档上网络这一块总共介绍了四项:发起请求,上传下载,WebSocket,SocketTask
- 我只了解过前两个,后两个还没用过,等那天用到了再补上。
发送请求
uni.request(OBJECT)
- 这个很好理解,就是发送网络请求。
- 通俗来讲,就是想后端请求数据,或发送数据,使得前后端联通起来。
参数:
url:开发者服务器接口地址。(也就是后端的Controler层的地址)
data:请求的参数(本次请求所要带的参数)
header:设置请求的header,header中不能设置Referer。(也就是设置本次请求的头信息)
method:(这个官方文档给的说明比较全。这个参数也就是填写本次请求的方式,我就说一下常用的GET,POST。其他的请求方式我也没用过)
dataType:如果设为json,会尝试对返回的数据做一次JSON.parse(也就是对数据格式转成json格式)
resposeType:设置响应的数据类型。合法值:text,arraybuffer。
success:收到开发者服务器成功返回的回调函数(这个时非常重要的,一般都要用,用于查看本次请求的结果)
fail:接口调用失败的回调函数。(跟上一个参数配套使用,当请求出问题时就能即使反馈。)
complete:接口调用结束的回调函数(调用成功、失败都会执行)
success 返回参数说明:
参数 类型 说明
data Object/String/ArrayBuffer 开发者服务器返回的数据
statusCode Number 开发者服务器返回的 HTTP 状态码
header Object 开发者服务器返回的 HTTP Response Header
data 数据说明
最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String。转换规则如下:
- 对于 GET 方法,会将数据转换为 query string。例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18。
- 对于 POST 方法且 header['content-type'] 为 application/json 的数据,会进行 JSON 序列化。
- 对于 POST 方法且 header['content-type'] 为 application/x-www-form-urlencoded 的数据,会将数据转换为 query string。
const requestTask = uni.request({
url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
data: {
name: 'name',
age: 18
},
success: function(res) {
console.log(res.data);
}
});
// 中断请求任务
requestTask.abort();