Axios基本配置

78 阅读1分钟

import axios from 'axios'

import url from './baseUrl'

const service = axios.create({

baseURL: url, // api的base_url

timeout: 20000000000, // request timeout

headers: {

'Access-Control-Allow-Origin': '*',

'Content-Type': 'application/json',

},

});

// POST传参序列化

service.interceptors.request.use((config) => {

// 监听loading

/**

* 2020-05-29 YJY

* config.url = '/base/dict/region/tree'

* 接口数据量过大,请求完成返回数据的时间在11s左右,衍生出全局loading展示的问题,只能在这拦截了,没有时间去想别的解决办法

* 可以做个黑名单列表,把数据返回量大的接口都填进去,遇到就跳过不展示loading

*/

if (config && !config.ignoreLoading && config.url != '/base/dict/region/tree') {

// console.log(config)

}

if (localStorage.getItem('token')) {

config.headers.token = localStorage.getItem('token');

// config.headers.key = 'Authorization';

config.headers.Authorization = 'bearer ' + localStorage.getItem('token');

}

return config

}, (error) => {

alert('传参错误')

return Promise.reject(error)

})

// code状态码200判断

service.interceptors.response.use((res) => {

// 监听loading

if (res && res.config && !res.config.ignoreLoading && res.config.url != '/base/dict/region/tree') {

}

if (res.status !== 200) {

return Promise.reject(res)

}

return res

}, (error) => {

// 网络异常

return Promise.reject(error)

})

export default service