Django无法处理HTTP PUT/DELETE请求
发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,后端API使用的框架是rest framework,前端通过GET获取列表,通过POST添加数据都没有问题但是通过DELETE方法进行删除操作的时候,有报错:奇怪,cookie里明明已经有了csrf的
千家信息网最后更新 2024年09月25日Django无法处理HTTP PUT/DELETE请求
后端API使用的框架是rest framework,前端通过GET获取列表,通过POST添加数据都没有问题
但是通过DELETE方法进行删除操作的时候,有报错:
奇怪,cookie里明明已经有了csrf的token,但是DELET方法好像就是识别不到,因而接口直接返回403
查了下资料:
因为POST请求,是将从csrftoken放在post参数中,但是django中对PUT/DELETE只能通过检查Header的方式来检查csrftoken
所以要么后端在接收PUT/DELETE请求后进行预处理,要么前端在PUT/DELETE方式增加一个Header
后端的解决方法暂时没找到好用的办法,前端处理这种情况很简单,在cookie中取csrftoken添加到请求头里即可:
export async function removeExport(params) {return request('/api/collector/', {method: 'DELETE',body: {...params,method: 'delete',},headers:{"X-CSRFToken": Cookies.get('csrftoken')}});}
这样后端就可以正常拿到前端带过来的csrftoken进行认证
在使用PUT方法进行更新操作的时候,又遇到一个问题,不返回403了,改成405了
报错是PUT Method Not Allow,方法不被允许?
又检查了一下处理跨域的地方:
大部分方法基本都允许了,但是看了下stackoverflow上面,说是请求的path俩面没有给修改的id
原本请求的url http://127.0.0.1:8080/api/promMonitor/
修改了下前端请求的path http://127.0.0.1:8080/api/promMonitor/1/
居然可以了,然后前端修改一下请求参数:把需要修改的id带到path里面即可
前端
方法
检查
处理
参数
方式
时候
要么
问题
办法
原本
地方
大部分
就是
情况
接口
数据
框架
端的
说是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
flyway 数据库迁移
软考网络技术员
怎么跟政府对接网络安全项目
软件开发fo是什么职位
数据库第四版全部答案
上海优宁维软件开发
医疗器械唯一数据库
安卓聊天交友软件开发
软件开发人已经饱和了
保定网络安全校园日成绩
举行网络安全团日活动的目的
就业软件开发
中世纪服务器下载
如何通过服务器查看监控回放
网络安全 华商报
助讯通服务器地址怎么查询
我国网络安全法表述正确的是
excel 数组追加数据库
网络安全案例演讲结尾
鹤岗租房软件开发
公司有网络安全认证
网络安全提升课后评估
盐城思科网络安全黑板报
网络安全和信息化赛迪出版
云校家显示网络安全升级
网络安全小课堂ppt
广东手机软件开发排行榜
杀毒后T3后无法连接服务器
柯达500T数据库
免费+数据库服务器