Django Ajax提交post命令403问题
Django学习第八天
今天在学习时遇到一个问题,信息通过Ajax提交时,页面显示403错误,这之前也遇到过,是因为提交的数据中无csrf信息,导致权限不够被服务器拒绝。之前做测试时的解决方法是直接将Django项目中的csrf中间件禁用了,但是现在还这样用有点说不过去,所以在上网百度后有这样两种解决方案。
第一种方案
如Ajax请求是使用jQuery来处理,则Django提供了一段代码来获取csrftokencookie
文档网址:https://docs.djangoproject.com/en/dev/ref/csrf/#ajax
第二种方案
在接收函数前加修饰器,如:
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def ajaxview(request):
pass
这样也可解决403错误问题
如使用表单提交可以在提交的表单中加入{% csrf_token %},如:
渲染后的网页源码:
这样即可避免csrf权限问题
笔者目前才刚刚开始django的学习,如有错误之处,请大牛见谅指出