首页 > Web开发 > 详细

使用Ajax (put delete ) django原生CBV 出现csrf token解决办法

时间:2019-05-14 10:09:31      阅读:179      评论:0      收藏:0      [点我收藏+]

原文地址:

https://blog.csdn.net/weixin_35993084/article/details/80778921 

修改ajax中type方式并设置header,同时对put重新构建数据字典

在对views中的方法进行类对象封装时,发现django并不支持像post和get一样将数据封装。
由于网页端无法设置method方法,在用postman和ajax开启pycharm对接口进行debug测试时发现:提交数据后并没有进入代码逻辑。
查阅资料得知,django支持put和delete方法。

为了防止跨站攻击,Django默认会对POST/PUT/DELETE这几种操作进行csrf token检查。POST可以将其放到post的参数中,但Django对PUT/DELETE只能通过检查Header的方式检查csrf token。
所以在进行ajax发送表单数据时,需要在ajax头文件中设置csrf

同时django对于PUT/DELETE请求并没有像POST/GET那样有一个字典结构。我们需要手动处理request.body获取参数:

from django.http import QueryDict
    put = QueryDict(request.body)
    key = put.get(key)
    field = put.get(field)
    field_value = put.get(field-value)

 

使用Ajax (put delete ) django原生CBV 出现csrf token解决办法

原文:https://www.cnblogs.com/erhao9767/p/10860116.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!