python学习-- Django Ajax CSRF 认证
2024-08-28 02:17:50
使用 jQuery 的 ajax 或者 post 之前 加入这个 js 代码:http://www.ziqiangxuetang.com/media/django/csrf.js
/*====================django ajax ======*/
jQuery(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'));
}
});
/*===============================django ajax end===*/
最新文章
- 七牛云:ckeditor JS SDK 结合 C#实现多图片上传。
- WCF
- openlayers中实现自定冒泡的效果
- CenOS 7 安装mysql
- 搭建一个springMVC项目以及遇到的问题
- 内存单元按字节编址,地址0000A000H~0000BFFFH共有几个存储单元
- 快速集成图片浏览器快速集成图片浏览器->;MJPhotoBrowser的使用
- ASP.NET AJAX注册命名空间
- ML: 降维算法-LE
- BAT修改文本内容
- Java Servlet (1) —— Filter过滤请求与响应
- PHP垃圾回收机制防止内存溢出
- python pytest测试框架介绍二
- Spring Boot 官方文档学习(一)入门及使用
- css中奇怪的地方
- Java的IO输入输出流类的介绍(有图)
- [bzoj] 3669 NOI2014 魔法森林 || LCT
- windows7下RabbitMQ的安装
- PHP函数(一)-变量
- django+xadmin在线教育平台(十)
热门文章
- ELF interpreter /libexec/ld-elf32.so.1 not found
- Python3基础12(collections、struct、itertools、chardet等的使用)
- Openfire+spark在linux上搭建内部聊天系统
- pat乙级1067
- 8. String to Integer
- 【BZOJ1088】[SCOI2005] 扫雷Mine(分类讨论)
- 从用户访问网站流程开始,细说web网络基础
- C语言 流缓冲 Stream Buffering
- Java代码工具箱之控制台输出重定向_控制台输出到文件
- ";mysql";.";innodb_table_stats"; not found 故障解决