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 %},如:
Django Ajax提交post命令403问题
渲染后的网页源码:
Django Ajax提交post命令403问题
这样即可避免csrf权限问题

笔者目前才刚刚开始django的学习,如有错误之处,请大牛见谅指出

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-28
  • 2022-12-23
  • 2021-07-11
  • 2021-07-24
  • 2021-09-21
  • 2021-06-24
猜你喜欢
  • 2022-01-19
  • 2021-11-01
  • 2022-12-23
  • 2022-03-03
  • 2021-10-09
  • 2021-09-24
相关资源
相似解决方案