如何在 Axios 中传递 Bearer 令牌
Posted
技术标签:
【中文标题】如何在 Axios 中传递 Bearer 令牌【英文标题】:How pass a Bearer token in Axios 【发布时间】:2019-08-30 14:30:43 【问题描述】:今天早上我在寻找答案并尝试了很多方法,但我的 axios API 调用总是失败并出现 401 错误。
此外,如果我从控制台或邮递员尝试 curl 请求有效,但我不明白为什么在我前面使用 vue 和 axios 它失败了。
我尝试在全局范围内传递承载,然后是一条独特的路线
首先我为 Axios 配置了我的模块
export default() =>
return axios.create(
baseURL: process.env.VUE_APP_API,
headers:
'Content-Type': 'application/json',
Authorization: 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyIn0.wxYD9dllTqT1gAIBmwo35Z4Q4qmlDZwXqz9FdYqXZnU'
)
那我有我的要求了
Api().get(`user-profiles/$id`).then(function (response)
return(response)
)
请求是这个:
Request URL: https://***
Request Method: OPTIONS
Status Code: 401
Remote Address: ****
Referrer Policy: no-referrer-when-downgrade
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Location
Provisional headers are shown
Access-Control-Request-Headers: authorization
Access-Control-Request-Method: GET
Origin: http://localhost:8080
Referer: http://localhost:8080/login
User-Agent: Mozilla/5.0 (Linux; android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/73.0.3683.86 Mobile Safari/537.36
您需要其他数据吗? 如果我不使用 Bearer 令牌,则该请求有效...
我需要传递 Bearer 令牌,因为对于生产版本,我无法取消 Bearer。
提前感谢您的帮助。
【问题讨论】:
试过这种方式吗? => axios.defaults.headers.common['Authorization'] = '承载 eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyIn0.wxYD9dllTqT1gAIBmwo35Z4Q4qmlDZwXqz9FdYqXZnU' 按 F12 打开 Chrome DevTools,然后转到 Network 选项卡并按 XHR 类型过滤请求。然后看看Axios实际发送了什么。 @Riddhi 不幸的是已经尝试过,但它不起作用 @IVOGELOV 我在帖子中添加了网络中的请求......但这对我没有帮助;( 【参考方案1】:经过一番搜索,我找到了解决方案... 您需要使用 cors 策略授权后端... 在我自己的 node js 后端上工作......我等待修复 java api 后端;)
【讨论】:
【参考方案2】:How to set header and options in axios?
就像这里在最佳答案中提到的,你应该去
export default() =>
return axios.create(
baseURL: process.env.VUE_APP_API,
headers:
'get':
'Content-Type': 'application/json',
Authorization: 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyIn0.wxYD9dllTqT1gAIBmwo35Z4Q4qmlDZwXqz9FdYqXZnU'
)
【讨论】:
我刚才试过你的建议,但还是同样的问题,我不明白为什么。以上是关于如何在 Axios 中传递 Bearer 令牌的主要内容,如果未能解决你的问题,请参考以下文章