//使用方法 // 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') { // TODO baseURL = "http://b2bcnapi.sailuntire.com/allstell/test/app" } // uEnvProd;生产模式,点击发行 if (process.env.NODE_ENV === 'production') { // TODO baseURL = "http://b2bcnapi.sailuntire.com/allstell/test/app"; }; let newVar = axios.create({ baseURL: baseURL, timeout: 10000 }); // 响应拦截器 newVar.interceptors.response.use({}, error => { let { message } = error; if (message == "Network Error") { message = "系统连接异常"; } else if (message.includes("timeout")) { message = "系统请求超时"; } else if (message.includes("Request failed with status code")) { message = "系统接口异常,请联系管理员"; } uni.showToast({ icon: 'none', title: message, position: "bottom" }) return Promise.reject(error) } ) return newVar(config); } //在uni-app中使用对app有效果,h5不需要 axios.defaults.adapter = function (config) { config.headers.token = uni.getStorageSync('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); } }) }) }