1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import Vue from 'vue';
- import VueCookies from 'vue-cookies';
- import axios from 'axios';
- import qs from 'qs';
- import utils from './utils';
- const DATA_URL = process.env.VUE_APP_PHP_URL;
- const APP_VERSION = process.env.VUE_APP_VERSION;
- const PLATFORM = process.env.VUE_APP_PLATFORM;
- const defaultOptions = {
- timeout: 20000,
- baseURL: DATA_URL,
- promptError: true,
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- },
- };
- const request = axios.create({
- ...defaultOptions,
- });
- request.interceptors.request.use((options) => {
- const config = { ...options };
- if (!config.data) {
- config.data = {};
- }
- const token = utils.getLocalStorage('token');
-
-
-
-
- config.data.appVersion = APP_VERSION;
- config.data.platform = PLATFORM;
- config.data.token = token;
- config.data = qs.stringify(config.data);
- return config;
- });
- request.interceptors.response.use((response) => {
- if (!response || response.status !== 200) {
- Vue.prototype.$message.error(response.data.message);
- return Promise.reject(response.data.message);
- }
- if (response.data.code === -100) {
- localStorage.clear();
- VueCookies.keys().forEach((cookie) => VueCookies.remove(cookie));
- return Promise.reject();
- }
- if (response.data.code !== 0) {
- Vue.prototype.$message.error(response.data.message);
- return Promise.reject(response.data.message);
- }
- return response.data;
- }, (error) => {
- const { status, data } = error.response || {};
- if (status === 200) {
- return Promise.reject(data);
- }
- return Promise.reject(error);
- });
- export default request;
|