【问题标题】:Not getting auth headers when setting axios default设置 axios 默认值时未获取 auth 标头
【发布时间】:2019-11-05 01:18:47
【问题描述】:

我正在尝试从 Vue 应用程序内部发送身份验证标头以及 axios POST 请求。我目前正在从我的后端获得一个 401,它带有一个在我进行 curl 时可以工作的身份验证标头。

我尝试将其拆分为变量并将其放入,但这不起作用并导致相同的错误 (401)。

这只是我想要开始工作的 axios 代码。我已经检查了 console.log 并且我尝试发送的所有值都存在,但我不知道如何在发送之前检查 axios 标头。

axios.defaults.headers.common["Authorization"] = JWTtoken;
axios.post(updateURL, {
  token: result.token
});

后端代码不能轻易更改以进行测试,因此需要弄清楚为什么不从前端发送

我希望它与我的请求一起发送正确的标头,这样我就不会收到 401 状态代码。

【问题讨论】:

  • 您需要使用 Chrome 从网络选项卡中调试问题并选择axios.post() 正在调用的端点。您可以从那里看到标题。
  • 您确定标头是“授权”吗?不是“x-access-token”之类的吗?你试过手动发送吗?
  • 根据axios上的代码sn-p,我无法判断是否有什么问题。
  • @GabrielLopes 100% 确定,因为我是后端的开发人员,我也可以使用我所说的标题在邮递员中工作。除非快递/护照接受多个不同的,否则它不可能是其他东西。
  • axios 代码是正确的 (jsfiddle.net/biutas/qL6y149g),如果在邮递员中有效,请尝试比较它在标题上的不同之处。

标签: node.js axios


【解决方案1】:

我认为你需要这个..

axios.defaults.headers.common["Authorization"] = "Bearer " + JWTtoken;
axios.post(updateURL, {
  token: result.token
});

请注意,我在Authorization 中添加了Bearer。这就是根据他们的introduction 使用 JWT 的方式。

但是,如果答案是错误的。按照@RuChernChong 的建议,通过在开发者控制台中提供有关您的response 的更多信息来帮助我们。任何错误日志也会有所帮助。

【讨论】:

  • 谢谢,在看到您的评论之前,我最终弄清楚了,但是是的,这就是问题所在。将您标记为正确,以便其他人看到,TY
【解决方案2】:

另一种方法是使用Axios globals 直接从JWT.io 设置例如X-Auth-Token 编码,如下所示:

axios.defaults.headers.common["X-Auth-Token"] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";

【讨论】:

  • 当应用程序正在寻找授权标头时,这将不起作用。
猜你喜欢
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 2013-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
相关资源
最近更新 更多