【问题标题】:axios is not sending X-CSRFToken header in productionaxios 未在生产中发送 X-CSRFToken 标头
【发布时间】:2021-03-13 04:05:12
【问题描述】:

我在 Heroku 上部署了 django rest,域如下:api.herokuapp.com。

在前端我有 React 域,例如:dashboard.mydomain.com

axios 的设置是:

axios.defaults.withCredentials = true;
axios.defaults.xsrfCookieName = "csrftoken";
axios.defaults.xsrfHeaderName = "X-CSRFToken";

本地一切正常。

生产中: 发出 POST 请求时出现 403 错误:CSRF Failed: CSRF token missing or incorrect

看到请求发送了cookie:

但它没有发送X-CSRFToken 标头。

本地正常发送标头。

我怀疑这可能是因为生产是 HTTPS 或因为域不同,但我对此了解不多。

可能是什么原因?

【问题讨论】:

    标签: reactjs api django-rest-framework axios


    【解决方案1】:

    使用这个

    axios.defaults.headers.common['X-CSRF-TOKEN'] = token;
    

    【讨论】:

    • 谢谢,你是用 js-cookie 包获取令牌还是硬编码?
    • 我提取了后端发送的代码。如果您喜欢答案,可以投票。
    • 如果 cookie 是 HttpOnly,这将不起作用
    猜你喜欢
    • 2013-04-14
    • 2016-10-10
    • 2017-07-21
    • 1970-01-01
    • 2021-02-13
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多