当前位置:  开发笔记 > 后端 > 正文

在没有表单元素的Django中使用ajax请求

如何解决《在没有表单元素的Django中使用ajax请求》经验,为你挑选了1个好方法。

我想在不使用Django中的表单元素的情况下发送一个ajax请求(通过Jquery,虽然我认为这种情况无关紧要).根据文档,我应该可以通过使用ensure_csrf_cookie装饰器来做到这一点,但是,我得到了Error was: cannot import name ensure_csrf_cookie.

我正在使用以下导入from django.views.decorators.csrf import ensure_csrf_cookie.

我没有找到大量的文档ensure_csrf_cookie,所以任何帮助将不胜感激.

顺便说一句,使用@csrf_exempt按预期工作.

提前致谢.



1> Yuji 'Tomita..:

ensure_csrf_cookie 如果你在导入它时遇到问题,那么它可能只是一个1.4 alpha的功能 - 我可以在trunk上使用相同的语句将其导入.

这里最简单的解决方案是在ajax调用本身中传递csrf_token VALUE.

你说你使用的是jQuery.

    $.ajax({
        url: "",
        type: 'POST',
        data: {
             csrfmiddlewaretoken: '{{ csrf_token }}' // just the token value
        },
        success: function(response) {
        }
    })

看来这会ensure_csrf_cookie强制视图设置csrf cookie,这些cookie将在这里描述的jquery ajax调用的基于自动cookie的csrf保护机制中使用:https://docs.djangoproject.com/en/dev/ref/contrib/ CSRF /#阿贾克斯

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有