【问题标题】:jQuery POST using Django CSRF - Remove X-CSRFToken Header After?使用 Django CSRF 的 jQuery POST - 之后删除 X-CSRFToken 标头?
【发布时间】:2016-03-08 10:16:04
【问题描述】:

我正在关注instructions here。 Django 的人说要在我的 Ajax 发布请求之前运行它以包含 CSRF 令牌。

function csrfSafeMethod(method) {
    // these HTTP methods do not require CSRF protection
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    }
});

这可行,但我是否需要在我的 POST 之后 从标题中删除该令牌?我不希望所有 jQuery 发布请求都包含它,因为我认为它可能会泄漏令牌。

那么如何在运行 POST 后撤消 ajax 设置?

我需要这样做吗?

【问题讨论】:

    标签: jquery django csrf django-csrf


    【解决方案1】:

    我认为您不需要这样做,因为它会在添加标头之前检查它是否不是跨域请求。

    【讨论】:

    • 是的,这很好。我猜它是在每个请求之前设置的,并且不会为下一个请求保留。
    猜你喜欢
    • 2017-07-21
    • 2013-04-14
    • 2013-09-28
    • 2016-10-10
    • 1970-01-01
    • 2011-10-19
    • 2015-09-19
    • 2018-08-09
    • 1970-01-01
    相关资源
    最近更新 更多