第1步
创建一个http文件,文件里包括api.js和request.js, 这三个名字可以随便起。
第2步
在request.js和api.js里面进行编写代码,如下:
request.js代码:
let baseUrl = 'http://47.104.167.34:8106'//1
let Authorization = uni.getStorageSync("token")//2
function request(params) {
return new Promise((resolve, reject) => {
uni.request({
...params, //展开参数
url: baseUrl + params.url,
header: {
Authorization
},
success: (res) => {
resolve(res.data) // 请求成功返回的数据
},
fail: (err) => {
reject(err) // 请求失败返回的消息
},
})
})
}
export default request
api.js代码:
import request from "../http/request.js"//1
// 登录
export const key = (params) => {
return request({
url: `/prod/prodListByTagId`,
method: "GET",
data: params,
})
}
第3步
页面编写相关代码
相关页面请求代码:
import {key} from "../../http/api.js"
fxq(){
uni.setStorageSync("token","123")
key({
tagId:1,
size:6
}).then((res)=>{
console.log(res)
})
}
解读
左request.js,右api.js
页面:
request.js里面:
1:设置请求接口的公共部分
2:获取存在本地的 token
3:定义一个function,叫request,接受的参数叫promise
4:...promise是把接受到api.js里面return request()的对象进行展开(es6语法),就可以获取 到里面的值
5:url:就是拼接地址,由上面的公共部分接口+api.js传来的动态接口
6:header:{}是请求头,我们在页面请求的时候把token存在本地,在requeat.js中获取token,然后放进这里面
7:最后一行抛出
api.js里面:
1:把request.js引进来
2:抛出自定义的key,里面写好请求接口:要除了公共部分的接口,请求方式get,以及要传的参数data,data:params是由页面请求写的传来的
页面里面:
1:接受key,在使用他。key().then(res=>{})
2:这个key(),括号里吗就是写要传递的参数,在api.js里面用params来接受,并使用
3.这个.then是成功后的操做