ajax报403错,django使用ajax post数据出现403错误如何解决
本文通过两种方法给大家介绍在django中,使用jquery ajax post数据,会出现403的错误,具体内容请看下文。
方法一:
如果用jQuery来处理ajax的话,Django直接送了一段解决问题的代码。把它放在一个独立的js文件中,在html页面中都引入即可。注意这个js文件必须在jquery的js文件引入之后,再引入即可
$(document).ajaxSend(function(event, xhr, settings) {
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = ; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(, name.length + ) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + ));
break;
}
}
}
return cookieValue;
}
function sameOrigin(url) {
// url could be relative or scheme relative or absolute
var host = document.location.host; // host + port
var protocol = document.location.protocol;
var sr_origin = '//' + host;
var origin = protocol + sr_origin;
// Allow absolute or scheme relative URLs to same origin
return (url == origin || url.slice(, origin.length + ) == origin + '/') ||
(url == sr_origin || url.slice(, sr_origin.length + ) == sr_origin + '/') ||
// or any other URL that isn't scheme relative or absolute i.e relative.
!(/^(\/\/|http:|https:).*/.test(url));
}
function safeMethod(method) {
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
if (!safeMethod(settings.type) && sameOrigin(settings.url)) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
}
});
方法二:
在处理post数据的view前加@csrf_exempt装饰符
例如
@csrf_exempt
def profile_delte(request):
del_file=request.POST.get("delete_file",'')
以上通过两种方法跟大家介绍了django使用ajax post数据出现403错误,希望对大家有所帮助。
ajax报403错,django使用ajax post数据出现403错误如何解决相关推荐
- jquery升级到新版本报错[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法...
最近把一个项目的jQuery升级到最新版,发现有些页面报错Cannot read property 'msie' of undefined.上jQuery网站上搜了一下,原因是$.browser这个a ...
- ajax post数组对象,Django:ajax POST发送对象数组无法正常工作的数据
var json_array = [] var edit_info = { 'name': str_name, 'id': str_id, }; json_array.push(JSON.string ...
- django ajax文件上传,django 之 ajax 篇 上传文件
前段: Title {% csrf_token %} 输入正确 ajax上传文件(前段): {% load static %} Title {% csrf_token %} {# #} 输入正确 头像 ...
- ajax返回报错html,Jquery AJAX POST调用返回200状态确定,但错误
嗨我已经实现了一个Ajax POST请求来调用Web服务.它总是返回200行,但执行失败的事件我已经尝试了很多事情,但我没有得到我犯的错误.我在这里添加我的代码. Fiddler显示响应内容,但Aja ...
- truncate报ORA-02266错“唯一/主键被启用的外部关键字引用”解决方法
今天想truncate一张表,但报ORA-02266错误 想到可能是主键被子表引用,查了一下 解决如下: SQL> truncate table table_name; truncate tab ...
- mysql出现2058,连接MySQL报“Error No.2058 Plugin caching_sha2_password could not be loaded”错误的解决办法...
点击数:312 原因: MySQL新版默认使用caching_sha2_password作为身份验证插件,而旧版是使用mysql_native_password 当连接MySQL时报错"pl ...
- 编译php的时候,报configure: error: mcrypt.h not found. Please reinstall libmcrypt.错误的解决办法...
configure: error: mcrypt.h not found. Please reinstall libmcrypt. 今天在编译php的时候,出现如下错误php安装出错:configu ...
- python安装错80072ee2_教你系统无法更新80072ee2错误的解决方法
最近有位一位用户向小编反馈,遇到了系统无法更新总会出现提示错误80072ee2的问题,就是关机重启之后都还是一个一样,就此问题,接下来小编教你系统无法更新80072ee2错误的解决方法吧. 1.点击开 ...
- ajax三种错误ie,ie下jquery ajax 80020101错误的解决方法
注意注释 删除这些注释就可以了 Windows下一个MySQL有些错误的解决方法 1.无论是什么提示.我们有一个直接看错误日志.由于它描述了最具体描述错误日志. 于MySQL安装文件夹中找到 my.i ...
最新文章
- 二.Python的基础语法知识
- linux上部署mysql服务_在Linux环境下部署MySql服务
- Struts(十六):通过CURD来学习Struts流程及ModelDriven的用法
- windows 3.x编程指南_18000 MHz 可编程衰减器
- opencv 人脸识别 (二)训练和识别
- java配置文件报错_java使用spring框架配置文件时遇到的错误——Referenced file contains errors...
- 2021 最流行的十大 JS 框架,前三又换牌了,最值得关注的是 Svelte 和 Solid 的崛起!...
- linux centos6.5 ftp网页vsftpd配置
- 向linux内核增加新的系统调用,为linux内核添加新的系统调用
- X86逆向教程10:学会使用硬件断点
- Qt工作笔记-对QThread使用的进一步认识(exec及对象在哪个线程创建)
- centos 安装maven_安装及使用Jenkins
- linux资源限制函数getrlimit,setrlimit(转载)【转】
- sql group by统计
- 会议及作用篇--项目管理(十三)
- mysql rds 是什么_mysql.rds.aliyuncs.com
- CSDN博客放阿里妈妈广告代码的方法
- spark入门框架+python
- NET性能优化-推荐使用Collections.Pooled(补充)
- 怎么把照片压缩变小?如何改变图片的大小?
热门文章
- 23Command(命令)模式
- ai取代程序员_你现在从事的程序员还有多久会消失?牛津大学研究员帮你算了算...
- ECCV2020 最佳论文提名 | 流感知技术
- 直播回顾|结构光3D相机光机核心技术及3D成像性能分析
- ThinkPHP简单的基础
- Survey | 生物医学文本挖掘最新进展
- contentProvider中有关query方法的使用
- java ado连接mysql_【转】Java JDBC对应C# ADO连接数据库之区别
- python repl_asyncio REPL(Python 3.8)
- Galaxy Release 20.05 发布,新增多项可视化体验