123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- //使用方法
- // 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);
- }
- })
- })
- }
|