axios设置拦截

import Vue from 'vue'

import axios from 'axios'

/*

* 全局请求拦截

*/

axios.defaults.baseURL = process.env.API_BASEURL

axios.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded'

axios.defaults.headers.common['Cache-Control'] = 'no-cache'

axios.interceptors.request.use((_config) => {

const config = _config

if (config.loading) {

Vue.$indicator.open({

text: config.loadingText ? config.loadingText : '加载中',

spinnerType: config.loadingAnimate ? config.loadingAnimate : 'double-bounce'

})

}

const loginToken = utilsTool.getItem('loginToken')

if (loginToken) {

config.headers.loginToken = loginToken

}

if (config.method === 'get') {

config.params = { ...config.params }

} else {

config.data = qs.stringify({ ...config.data })

}

return config

}, (error) => {

return Promise.reject(error)

})

var serversDate = Number(new Date())

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

Vue.$indicator.close()

const date = res.headers.date

serversDate = Number(new Date(date)) + 1000

Vue.prototype.$_t = serversDate

return res.data

}, (err) => {

Vue.$indicator.close()

return Promise.reject(err)

})

Vue.prototype.$http = axios

猜你喜欢

转载自blog.csdn.net/qq_29557739/article/details/88383518