Geo*_*vis 8 javascript vue.js axios vuejs2
在main.js中
import axios from 'axios';
axios.defaults.headers.common = {
'Authorization': 'JWT ' + Vue.auth.getToken()
};
axios.defaults.baseURL = process.env.VUE_APP_BASE_URL; //TODO: append the trailing slash
// Add modified axios instance to Vue prototype so that to be available globally via Vue instance
Vue.prototype.$http = axios;
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切正常.(我能够成功登录并存储令牌)
现在,我有另一个组件,通过在组件的created()生命周期上执行的ajax调用从服务器获取用户列表.我的问题是,当我尝试访问this.$http组件时,我从服务器返回401错误响应,因为Authorization标头不可用于请求标头(尽管我已经预先配置了axios.defaults.headers.common)
奇怪的是,如果我点击浏览器上的刷新按钮,则令牌会正确附加到请求标头,并且成功获取用户列表**.**
有谁能请向我解释为什么会发生这种情况?
小智 0
您是否尝试过使用asios.create?
http/index.js:
import axios from 'axios'
import env from '../config/env'
import store from '../store'
export default (() =>
axios.create({
baseURL: env.API_HOST,
headers: {
common: {
Authorization: store.getters['user/getAuthToken']
}
}
}))()
Run Code Online (Sandbox Code Playgroud)
main.js:
import http from './http'
Vue.prototype.$http = http
Run Code Online (Sandbox Code Playgroud)
另外,我使用存储操作来更新 axios 客户端:
updateHTTPClientAuthToken () {
Vue.prototype.$http.defaults.headers.common.Authorization = this.getters.getAuthToken
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |