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

在没有表单元素的Django中使用ajax请求,第1张

概述我想在不使用Django中的表单元素的情况下发送一个ajax请求(通过 Jquery,虽然我认为这种情况无关紧要).根据 documentation,我应该可以通过使用ensure_csrf_cookie装饰器来做到这一点,但是,我得到的错误是:无法导入名称ensure_csrf_cookie. 我从django.views.decorators.csrf导入ensure_csrf_cookie使 我想在不使用Django中的表单元素的情况下发送一个AJAX请求(通过 Jquery,虽然我认为这种情况无关紧要).根据 documentation,我应该可以通过使用ensure_csrf_cookie装饰器来做到这一点,但是,我得到的错误是:无法导入名称ensure_csrf_cookie.

我从django.vIEws.decorators.csrf导入ensure_csrf_cookie使用以下导入.

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

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

提前致谢.

解决方法 如果你在导入它时遇到问题,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需要在基于自动cookie的csrf保护机制中使用,用于此处描述的jquery AJAX调用:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

总结

以上是内存溢出为你收集整理的在没有表单元素的Django中使用ajax请求全部内容,希望文章能够帮你解决在没有表单元素的Django中使用ajax请求所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1083883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存