//使用方法 // require("promise.prototype.finally").shim(); //使用时请引用finally // import {request} from '../../request/request' // request({ // url: '/room/list', // }).then(res => { // // }).catch(err => { // // }).finally(() => { // Loading.close() // }) //配置文件 import axios from 'axios' export function request(config) { let baseURL; // uEnvDev;开发者模式,点击运行 if (process.env.NODE_ENV === 'development') { //测试接口 // baseURL = "http://192.168.137.1:9010" baseURL = "https://www.jingruntech.com/prod-api" } // uEnvProd;生产模式,点击发行 if (process.env.NODE_ENV === 'production') { // baseURL = "http://192.168.137.1:9010" //正式接口 baseURL = "https://www.jingruntech.com/prod-api" }; let newVar = axios.create({ baseURL: baseURL, timeout: 10000 }); // 请求拦截 newVar.interceptors.request.use( request => { //配置基本信息 // console.log(request) return request; }, err => { return Promise.reject(err); }); // 响应拦截 newVar.interceptors.response.use(function(response) { console.log(response) if (response.data.code == 401) { uni.showModal({ title: '提示', content: '登录状态失效,点击确定重新登录', showCancel: false, success: function(res) { if (res.confirm) { axios.request({ baseURL: baseURL, url: '/wechat/programLogin', method: 'POST', data: { phonenumber: uni.getStorageSync('cell_phone'), token: uni.getStorageSync('vuex_token'), usertype:'11' } }).then((res) => { uni.setStorage({ key: 'vuex_token', data: res.data.data.token, success(es) { console.log("成功") } }) let time = new Date(new Date().setDate(Date().getDate() + 6)) uni.setStorage({ key: 'effective_time', data: time.getTime(), success(res) { console.log("成功") } }) uni.redirectTo({ url: '/pages/home/index' }); }); } else if (res.cancel) { // console.log('用户点击取消'); } } }); return } // console.log('返回进入拦截成功') return Promise.resolve(response); }, function(error) { // console.log('返回进入拦截失败') return Promise.reject(error); }); return newVar(config); } //在uni-app中使用对app有效果,h5不需要 axios.defaults.adapter = function(config) { //token请求头 if (uni.getStorageSync('vuex_token')) { config.headers.Authorization = "Bearer" + " " + uni.getStorageSync('vuex_token'); } return new Promise((resolve, reject) => { var settle = require('axios/lib/core/settle'); var buildURL = require('axios/lib/helpers/buildURL'); uni.request({ method: config.method.toUpperCase(), url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer), header: config.headers, data: config.data, dataType: config.dataType, responseType: config.responseType, sslVerify: config.sslVerify, complete: function complete(response) { response = { data: response.data, status: response.statusCode, errMsg: response.errMsg, header: response.header, config: config }; settle(resolve, reject, response); } }) }) }