在django中,使用jquery ajax post数据,会出现403的错误
来源:互联网 发布:施工预算软件下载 编辑:程序博客网 时间:2024/06/18 00:36
在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 = 0; i < cookies.length; i++) {
- var cookie = jQuery.trim(cookies[i]);
- // Does this cookie string begin with the name we want?
- if (cookie.substring(0, name.length + 1) == (name + '=')) {
- cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
- 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(0, origin.length + 1) == origin + '/') ||
- (url == sr_origin || url.slice(0, sr_origin.length + 1) == 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'));
- }
- });
$(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 = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 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(0, origin.length + 1) == origin + '/') || (url == sr_origin || url.slice(0, sr_origin.length + 1) == 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中,使用jquery ajax post数据,会出现403的错误
- django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
- django使用ajax post数据403错误解决方法 (tip)
- jquery中使用ajax发送post请求返回数据在error中
- 在JQuery中可以使用get,post和ajax方法给服务器端传递数据
- jQuery中使用ajax,$.post
- django POST请求出现403错误
- asp.net中使用jquery的ajax来post数据的树控件
- asp.net中使用jquery的ajax来post数据的树控件
- jquery的ajax返回json数据出现parseerror错误
- Struts2中,使用JQuery下的AJAX出现的“unexpected token <”错误
- django管理功能POST提交数据总是出现错误,而实际是提交成功的
- jquery 使用$.ajax post方法提交数据
- 在MFC中使用模板类 解决会出现的error LNK2001连接错误
- Django中post请求403错误的解决
- jquery解释django+ajax+json的数据
- Ajax with Django 在django 中使用ajax
- Python-django中ajax使用POST时使用csrf_token
- Java中的Json解析
- 前端代码标准最佳实践:HTML篇
- NoClassDefFoundError: org/slf4j/LoggerFactory和NoClassDefFoundError: org/apache/log4j/LogManager解决方法
- 移动处理器也疯狂,Google“亲儿子”Nexus 7爆超2GHz
- Hello World @ Cloud Foundry
- 在django中,使用jquery ajax post数据,会出现403的错误
- 通信协议——Http、TCP、UDP
- 安装oracle 9i遇到的问题
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- 断点续传下载的Java实现
- 导出dll函数到txt中
- Linux IIC驱动学习实例
- ifconfig详解
- linux启动代码分析