uniapp 实现request携带token
2021-11-24 本文已影响0人
上海_前端_求内推
方式1
//const baseUrl =`http://192.192.192.183:9798`
import basesevers from './basesevers.js'
const baseUrl = basesevers.request1
const request = (url = '', date = {}, type = '', header = {}, responseType = '') => {
return new Promise((resolve, reject) => {
// #ifdef H5
const token = uni.getStorageSync('access_token');
if(!token){
window.location = "/#/pages/logo/logo";
return;
}else{
let key='Authorization'
let value='Bearer ' + token + ''
header[key]=value
}
//#endif
// #ifdef MP-WEIXIN
const token = uni.getStorageSync('access_token');
if(!token){
uni.clearStorageSync()
uni.reLaunch({ //信息更新成功后跳转到小程序首页
url: '/pages/404/sq'
});
return;
}else{
let key='Authorization'
let value='Bearer ' + token + ''
header[key]=value
}
//#endif
uni.showLoading({
title: '加载中',
})
uni.request({
method: type,
url: baseUrl + url,
data: date,
responseType: responseType,
header: header,
}).then((response) => {
setTimeout(function() {
uni.hideLoading();
}, 200);
let [error, res] = response;
resolve(res.data);
}).catch(error => {
let [err, res] = error;
reject(err)
})
});
}
export default request
方式2
//功能:暴露接口
// const BASE_URL = process.env.NODE_ENV === 'production' ? `http://192.192.192.183:9798/`:`/api/`;
import basesevers from '../common/basesevers.js'
let BASE_URL = basesevers.request1+`/`
// #ifdef H5
// BASE_URL='/api/'
// #endif
export const myRequest = (options) => { //暴露一个function:myRequest,使用options接收页面传过来的参数
return new Promise((resolve, reject) => { //异步封装接口,使用Promise处理异步请求
// #ifdef H5
const token = uni.getStorageSync('access_token');
if(!token){
window.location = "/#/pages/logo/logo";
return;
}else{
options.header = {
'Authorization' : 'Bearer ' + token
};
}
//#endif
// #ifdef MP-WEIXIN
const token = uni.getStorageSync('access_token');
if(!token){
uni.clearStorageSync()
uni.reLaunch({ //信息更新成功后跳转到小程序首页
url: '/pages/404/sq'
})
return;
}else{
options.header = {
'Authorization' : 'Bearer ' + token
}
}
//#endif
uni.showLoading({
title: '加载中',
})
uni.request({ //发送请求
url: BASE_URL + options.url, //接收请求的API
method: options.method || 'GET', //接收请求的方式,如果不传默认为GET
data: options.data || {}, //接收请求的data,不传默认为空
success: (res) => { //数据获取成功
uni.hideLoading();
resolve(res) //成功,将数据返回
},
fail: (err) => { //失败操作
uni.showToast({
title: "请求接口失败!"
})
reject(err)
}
})
})
}