123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- import axios from 'axios';
- import store from '@/store';
- import router from '@/router';
- import Vue from 'vue';
- import Qs from 'qs';
- import $ from 'jquery';
- import {
- getToken,
- getOpenId
- } from '@/utils/storage'
- axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'
- //检测是否可以访问通
- var baseApiList = [process.env.VUE_APP_BACKEND_URL];
- var apiTypeIndex = 0;
- var checkApiGetBackendUrl = function(index) {
- $.ajax({
- url: baseApiList[index] + '/mobile/companyInfoApi/link',
- type: 'GET',
- async: false, //同步
- data: {},
- timeout: 3000,
- success: function(data, textStatus, jqXHR) {
- },
- error: function(xhr, textStatus) {
- console.log(index)
- console.log(baseApiList[index] + '异常');
- if (document.title.indexOf('-') > -1) {
- document.title = document.title.substring(0, document.title.indexOf('-')) + '-线路' + (index + 1);
- } else {
- document.title = document.title + '-线路' + (index + 1);
- }
- if (index == baseApiList.length - 1) {
- alert('接口无法访问,请联系开发者处理');
- } else {
- index++;
- apiTypeIndex = index;
- checkApiGetBackendUrl(index);
- }
- },
- complete: function() {
- console.log('接口通畅校验完成')
- }
- })
- }
- checkApiGetBackendUrl(apiTypeIndex);
- //只有当刷新的时候才会访问一次校验
- store.commit('SET_API_TYPE', baseApiList[apiTypeIndex]);
- var BACKEND_URL = baseApiList[apiTypeIndex];
- if (process.env.VUE_APP_NODE_NAME == 'devlopment') {
- //BACKEND_URL = 'http://192.168.77.162:8086/jp-housekeeper-server/'
- //baseApiList = ['http://127.0.0.1:8086/jp-housekeeper-server/']
- //BACKEND_URL="http://192.168.33.220:8086/gaoa-server/";
- }
- // 创建axios实例
- const service = axios.create({
- baseURL: BACKEND_URL,
- timeout: 20000,
- // 请求头信息
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'X-Requested-With': 'XMLHttpRequest',
- },
- });
- //request拦截器
- service.interceptors.request.use(config => {
- let Authorization = getToken() ? getToken() : '';
- config.headers['Authorization'] = Authorization;
- return config;
- }, error => {
- //对请求错误处理
- return Promise.reject(error);
- });
- // response拦截器
- service.interceptors.response.use(
- response => {
- if (response.data.code === 200) {
- if (response.data.result) {
- return Promise.resolve(response.data.data);
- } else {
- return Promise.reject(response.data.message);
- }
- } else if (response.data.code === 415) {
- //这里不执行,token过期
- } else {
- //无code的情况
- if (response.data.result) {
- return Promise.resolve(response.data.data);
- } else {
- return Promise.reject(response.data.message);
- }
- // todo 根据返回值判定去向,比如token过期,未登录等等
- // 403 接口需要登录
- /* if (response.data.code === 403) {
- store.dispatch('clearToken');
- router.replace({
- name: 'Login',
- query: {
- redirect: router.currentRoute.fullPath
- }
- });
- } */
- return Promise.reject(response.data.message);
- }
- },
- error => {
- // alert('网络超时!请重新加载!');
- //console.error(error);
- // 判断请求异常信息中是否含有超时timeout字符串
- if (error.message.includes('timeout')) {
- return Promise.reject('请求超时,请稍后再试');
- } else if (error.message.includes('NetworkError')) {
- return Promise.reject('网络错误,请稍后再试');
- }
- return Promise.reject(error);
- }
- );
- export default service;
|