更新到Django 1.5 ajax csrf中间件403

时间:2014-01-19 13:34:35

标签: ajax django django-1.5 django-1.4 django-csrf

我有一个网站,用户点击fav按钮,将发送ajax请求。我在模板中有以下内容。

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

以及更多...一切正常但在我升级到1.5.5后,请求禁止 在铬的检查元素。如果我降级到1.4,一切正常但是......为什么 这是发生了..我需要添加一些设置,如中间件或其他东西。但在普通表格(如登录)上没有找到csrf问题。当我检查我的页面来源时,csrf部分被正确填充,并且可以在chrome inspect元素的请求中看到。

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

1 个答案:

答案 0 :(得分:1)

如果您这样使用它:

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

有效吗?