首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django Ajax“禁止”错误

Django Ajax“禁止”错误
EN

Stack Overflow用户
提问于 2011-05-30 23:18:53
回答 3查看 11.5K关注 0票数 16

我见过人们在尝试发出远程Ajax请求时收到禁止错误的情况,但我正在发出本地请求,并且我的中间件中也启用了CSRF。

errorThrown返回“禁止的”

我认为问题可能是我试图将此内容发送到普通视图(当前页面)……我不确定我的预处理器是否返回到视图以重新呈现页面。或者它是否直接返回到我当前的页面。(不要认为我解释得很好)

希望这能让你对发生的事情有一个足够好的了解。任何/所有的帮助都是非常感谢的。

.ajax:

jQuery.ajax({
        type: "POST",
        dataType: "json",
        data: dataString,
        success: function(json) {
              jQuery(".signup").attr('disabled', false);
              $('.success').show();
              console.log(json.message);
        },
        error: function(jqXHR, textStatus, errorThrown) {
              jQuery(".signup").attr('disabled', false);
              $('.fail').show().append(errorThrown);
              console.log(textStatus);
        }

    });
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-31 00:23:33

即使请求发往相同的域,也需要CSRF令牌。这里有向AJAX请求添加CSRF令牌的代码(使用jQuery):

https://docs.djangoproject.com/en/1.7/ref/contrib/csrf/#ajax

这个链接指向1.7版本,如果你使用的是不同版本的Django,你可以从右下角的浮动菜单中选择你的版本。

票数 20
EN

Stack Overflow用户

发布于 2011-05-30 23:49:48

如果你打开了csrf,你会得到403个错误,试着添加views.py,看看是不是这导致的:

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
view class/method
票数 9
EN

Stack Overflow用户

发布于 2016-10-18 02:13:17

从这里下载并包含jQuery.Cookie:http://plugins.jquery.com/cookie/

然后,添加beforeSend函数并发送csrf token,如下所示:

jQuery.ajax({
    type: "POST",
    dataType: "json",
    data: dataString,
    beforeSend: function(xhr, settings) {
        xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken'));
    },
    success: function(json) {
          jQuery(".signup").attr('disabled', false);
          $('.success').show();
          console.log(json.message);
    },
    error: function(jqXHR, textStatus, errorThrown) {
          jQuery(".signup").attr('disabled', false);
          $('.fail').show().append(errorThrown);
          console.log(textStatus);
    }

});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6178048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档