更新到Django 1.5 Ajax CSRF中间件403



我有一个网站,在该网站上,将在该网站上单击FAV按钮,并将发送AJAX请求。我在模板中有以下内容。

    $.ajax
    ({
        type: "POST",
        contentType:'application/json',
        data: {
                query : query,
                id : {{ photo.id }},
                csrfmiddlewaretoken: '{{ csrf_token }}'
        },
        dataType:'json',

等等...一切都很好,但是在我升级到1.5.5之后,请求说禁止在Chrome的检查元素中。如果我降级到1.4,一切正常...为什么这是在发生吗?我需要添加一些设置,例如中间件或其他设置。但是在正常形式(如登录)上,找不到CSRF问题。当我检查页面的来源时,CSRF部分被正确地填充,并且可以在Chrome Inspect Inspect element中的请求中看到。

有人可以为此提出一些解决方案。预先感谢您,托马斯

如果您使用这种方式:

$.ajax({
    type: 'POST',
    beforeSend: function(xhr) {
        xhr.setRequestHeader("X-CSRFToken", {{ csrf_token }});
    },
    ...

它有效吗?

最新更新