最近有这样一个需求,需要在axios实例化后,动态设定baseurl。
第一个想到的办法就是在拦截器里设置:
// 添加请求拦截器
// token 在登录成功后保存到Session Storage
service.interceptors.request.use(function (config) {
const token = sessionStorage.token
if (token) {
config.headers.common['Authorization'] = `Bearer ${sessionStorage.token}`
}
//根据vuex store内容动态设置baseurl
config.baseURL = store.getters.baseUrl
return config
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error)
})
发现不起作用。
最后发现,直接设置url即可:
把上面的config.baseURL = store.getters.baseUrl
换成config.url = store.getters.baseUrl + config.url
即可
效果