现在封装的http如下(借鉴网友):
import axios from 'axios'
import store from '@/store/'
import router from '@/router/'
// axios 配置
axios.defaults.timeout = 5000
// axios.defaults.baseURL = ''
// 请求拦截器
axios.interceptors.request.use(
config => {
if (store.state.token) {
config.headers.Authorization = `token ${store.state.token}`
}
// config.headers.token = localStorage.getItem('token') // 将接口返回的token信息配置到接口请求中
return config
},
err => {
return Promise.reject(err)
}
)
// 返回拦截器
axios.interceptors.response.use(
response => {
return response
},
error => {
if (error.response) {
store.dispatch('logout')
router.replace({
path: '/login',
query: {redirect: router.currentRoute.fullPath}
})
}
return Promise.reject(error.response.data)
}
)
export default axios
有个问题是发起post请求会出现option拦截,降低chrome安全等级后可以调通,问:怎么配置axios跨域?
我搜了下有说qs转的,但是要求传参是json,这个行不通
开发的时候,可以通过proxyTable配置,通过node代理为前端同域。
测试或开发时,可以使用nginx/apache等代理为同域。
当然也可以配置服务器端支持cors