| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import ENV_CONFIG from '@/.env.js'
- // api前缀
- export const HTTP_URL_DEV_PREFIX = '/api'
- export const HTTP_URL_PROD_PREFIX = '/api'
- const env = ENV_CONFIG[process.env.ENV_TYPE || 'dev'];
- // 基于uview-ui的http配置
- export const UVIEWUI_HTTP_CONFIG = {
- // 地址
- baseUrl: env.apiUrl + env.apiUrlPrefix,
- // 请求方式
- method: 'post',
- // 参数类型
- dataType: 'json',
- // 是否显示请求中的loading
- showLoading: true,
- // 请求loading中的文字提示
- loadingText: '请求中...',
- // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
- loadingTime: 800,
- // 是否在拦截器中返回服务端的原始数据
- originalData: true,
- // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
- loadingMask: true,
- // header:{
- // token:uni.getStorageSync('token')
- // },
- }
- // 此处配置请求拦截器
- export const httpRequest = (config) => {
- console.log('请求拦截器>>>>>', config);
- const token = uni.getStorageSync('token');
- console.log('token>>>>>', token);
- config.header.Authorization = token ? `Bearer ${token}` : ''
- return config;
- }
- // 此处配置响应拦截器
- export const httpResponse = (res) => {
- return new Promise(function(resolve, reject) {
- if (res.statusCode == 200) {
- console.log('成功>>>>');
- if (res.data.code == 0) {
- uni.showToast({
- icon: 'none',
- title: res.data.msg
- })
- return reject(res.data);
- }
- if (res.data.code == 401) {
- console.log('接口未登录>>>>401');
- // 未登录
- uni.removeStorageSync('token');
- uni.navigateTo({
- url: '/pages/login/index'
- })
- return reject(res.data);
- }
- return resolve(res.data);
- }
- if (res.statusCode == 401) {
- console.log('未登录>>>>');
- // 未登录
- uni.navigateTo({
- url: '/pages/login/index'
- })
- uni.removeStorageSync('token');
- return reject(res.data);
- }
- if (res.statusCode == 500) {
- console.log('服务器异常>>>>500');
- uni.showToast({
- title: '服务器异常,请联系客服!',
- icon: 'none',
- duration: 3000
- })
- return reject(res.data);
- }
- return resolve(res.data);
- })
- }
- // http安装方法
- export const installHttpConfig = (Vue, vm) => {
- Vue.prototype.$u.http.setConfig(UVIEWUI_HTTP_CONFIG);
- Vue.prototype.$u.http.interceptor.request = httpRequest
- Vue.prototype.$u.http.interceptor.response = httpResponse
- }
|