我正在开发一个简单的ajax调用($ .ajax函数,类型,url和数据作为选项参数),并在页面中使用jquery,但是我收到了403错误。
所以我已经为$ .ajax函数添加了csrf的另一个选项参数,并且相应的标记在模板中正确显示。
但我再次收到403错误。
我也尝试添加视图处理程序(在views.py中)一个csrf装饰器,如@csrf_protect
或@requires_csrf_token
,但没有任何改变。
一些帮助?
我已经看到这种模式在django https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#s-ajax
中进行ajax调用但是我做一个简单的ajax调用真是太多代码了,所以我找到了一个简短的解决方案
答案 0 :(得分:5)
如果您不想对该视图使用CSRF保护,则所需的装饰器为@csrf_exempt
- 其他装饰器将确保应用CSRF保护 。这可能是最简单的解决方案,特别是如果呼叫对安全性不敏感的话。
或者,请确保您遵循此处文档中提到的方法:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#page-uses-ajax-without-any-html-form