goldpankit
Version:
GoldPanKit是一款极速研发套件,可在套件中快速构建各类技术框架和项目。开源作者可发布自己的项目,并为其设定金额,实现开源项目的盈利。
51 lines (46 loc) • 1.42 kB
JavaScript
const axios = require('axios')
const cache = require('../core/utils/cache')
const userToken = require('../core/user.token')
const env = require('../env').getConfig()
// 默认配置
axios.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8'
const axiosInstance = axios.create({
// baseURL: 'http://192.168.124.5:10088',
baseURL: env.remoteApi,
// 请求超时时间
timeout: 300000
})
// 新建请求拦截器
axiosInstance.interceptors.request.use(config => {
// 添加头部信息
const headers = cache.get('request_headers')
if (headers != null) {
config.headers = {
cookie: headers.cookie
}
cache.remove('request_headers')
}
const token = userToken.getToken()
if (token != null) {
config.headers['x-kit-token'] = token.value
}
return config
}, function (error) {
return Promise.reject(error)
})
// 新建响应拦截器
axiosInstance.interceptors.response.use((response) => {
if (!response.data.success) {
return Promise.reject(response.data)
}
return response.data.data
}, function (error) {
if (error.code == null) {
return Promise.reject(new Error('服务器繁忙,请稍后再试'))
}
if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) {
return Promise.reject(new Error('服务器响应超时,请稍后再试'))
}
return Promise.reject(error)
})
module.exports = axiosInstance