两个ajax请求,2个csrf令牌,一个用于POST,一个用于PUT不工作 - 403错误

时间:2016-09-15 21:03:50

标签: javascript ajax django django-csrf

我在Django呈现的一个html中有2个$.ajax()函数。第一个正常工作,第二个用403 CSRF Failed: CSRF token missing or incorrect.

回答

这是相关的js代码:

$(document).ready(function(){

   window.CSRF_TOKEN = "{{ csrf_token }}";

    ....
    $.ajax({
           method: "POST",
           url: "{% url 'alpha:create_cart_item' %}",
           data: {'item': stockitem_id, 'quantity': '1', 'csrfmiddlewaretoken': window.CSRF_TOKEN},
           success: function(resp){...}

    ....
    $.ajax({
           method: "PUT",
           url: "{% url 'alpha:update_cart_item' 0 %}".replace("0", cartitem_id),
           data: {'pk': cartitem_id, 'csrfmiddlewaretoken': window.CSRF_TOKEN},
           success: function(resp){
               panel_div.hide();
           },
           error: function(resp){
           }
       });

第二个Ajax请求无效。我以完全相同的方式设置csrfmiddlewaretoken。我为什么得到403?显然我错过了什么,请帮助。

更新

调试这个我发现如果我将第二个请求的方法更改为“POST”,它就能正常工作。但我确实需要这种方法是“PUT”。

另外,我正在使用Django REST Framework ......

0 个答案:

没有答案