【问题标题】:Axios POST Request with CSFR Token gets denied - 401带有 CSRF 令牌的 Axios POST 请求被拒绝 - 401
【发布时间】:2020-02-25 14:13:02
【问题描述】:

我的 Axios Post 请求被 401 拒绝,我不确定是什么原因造成的,CSRF 令牌应该是正确的。

   await axios.post(url, {
          withCredentials: true,
          params: {
            json: true,
          },
          auth: {
            username: 'stack',
            password: 'overflow'
          },
          headers: {
            'X-Requested-With': 'XMLHttpRequest',
            "X-CSRF-Token": csfrToken
          }
        })

【问题讨论】:

  • 我们不知道为什么服务器拒绝它。我们看不到服务器端代码。 (假设它是获取 401 的 POST 请求,而不是您未提及的预检选项请求)。
  • 我自己看不到服务器代码,因为我将其发送到 SAP 系统的 OData。如何检查预检选项?我没有配置任何东西
  • 您添加了非标准标题。该配置将触发预检。浏览器开发者工具的“网络”选项卡将显示您发送的请求。
  • 我不完全确定在哪里可以找到预检标头,我使用开发人员工具的请求选项卡中的屏幕截图编辑原始帖子
  • X-Requested-WithX-CSRF-Token 都是非标准标头,会触发预检。 withCredentials 将触发预检。

标签: javascript post axios token


【解决方案1】:

这个问题的解决方案是我必须获取从我的 GET 请求中获取的 cookie,在该请求中我获取 csfr 令牌并将它们与我的 POST 请求一起传递。

【讨论】:

    猜你喜欢
    • 2014-08-10
    • 1970-01-01
    • 2020-11-09
    • 2016-08-29
    • 1970-01-01
    • 2019-06-29
    • 2021-09-08
    • 2017-01-14
    • 2016-08-21
    相关资源
    最近更新 更多