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的学习,如有错误之处,请大牛见谅指出

posted @ 2018-12-13 15:28  一颗大白菜_20181203  阅读(985)  评论(0编辑  收藏  举报