新建utils文件夹,在该文件新建request.js文件,
文件内容
baseUrl:接口路径
const baseUrl = 'http://localhost:8088';
// 请求拦截器
const requestInterceptor = config => {
// 在这里可以对请求做一些处理,比如添加请求头、处理请求数据等
const token = getToken();
if (token) {
// 如果存在token,则统一添加到请求头中
config.header = {
...config.header,
'Authorization': token
};
}
console.log('请求拦截器:', config);
return config;
};
const getToken = () => {
return uni.getStorageSync('Authorization')
}
// 响应拦截器
const responseInterceptor = response => {
// 在这里可以对响应做一些处理,比如处理响应数据、处理错误等
console.log('响应拦截器:', response);
return response;
};
export const request = (url, method, data) => {
return new Promise((resolve, reject) => {
const config = {
url: baseUrl + url,
method: method,
data: data,
success: res => {
// 请求成功后应用响应拦截器
resolve(responseInterceptor(res));
},
fail: err => {
reject(err);
}
};
const interceptedConfig = requestInterceptor(config);
uni.request(interceptedConfig);
});
}
export default request
然后在main.js中导入并声明到VUE实例。
//request.js文件创建在utils文件夹下
import {request} from '@/utils/request.js'
Vue.prototype.request = request
使用方式,this.request(“接口名”,“请求方式”,“请求参数”).then((res)=>{成功回调}).catch((err)=>{失败回调})
post请求
this.request("/user/login", "post", this.login).then(
(res) => {
console.log(res);
}
}).catch((err) => {
console.log(err);
})
get请求
this.request("/orderstatus/getorderstatus", "get", {userId: this.userId}).then(
(res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});