【问题标题】:CSRF verification failed error with react, axios and DRF使用 react、axios 和 DRF 的 CSRF 验证失败错误
【发布时间】:2020-01-08 12:21:51
【问题描述】:

我正在尝试发出如下所示的发布请求

axios
        .post(`http://127.0.0.1:8000/api/create/${this.props.id}`, {
          headers: {
            Authorization: `Token ${token}`
          },
          xsrfCookieName: "XSRF-TOKEN",
          xsrfHeaderName: "X-CSRFToken"
        })
        .then();

我还在 settings.py 中添加了一些重要的东西,例如 CSRF_COOKIE_NAME = "XSRF-TOKEN"

我也有

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
        'rest_framework.authentication.BasicAuthentication',


    ),
}

【问题讨论】:

标签: django reactjs rest post axios


【解决方案1】:

您可能需要在代码中添加ensure_csrf_cookie

页面通过 AJAX 发出 POST 请求,并且该页面没有带有 csrf_token 的 HTML 表单,这会导致发送所需的 CSRF cookie。

from django.views.decorators.csrf import ensure_csrf_cookie
 @ensure_csrf_cookie

阅读有关ensure_csrf_cookie 的更多信息。让我知道这是否有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2021-11-12
    • 2015-02-28
    • 2012-09-08
    • 2015-06-02
    • 1970-01-01
    相关资源
    最近更新 更多