django中input type=submit 发送ajax 的post和get请求
2017-07-15 17:12
726 查看
django中input type=submit 发送ajax 的post和get请求
get请求可以直接发送
post请求会出现csrf的403错误
方法一:
input type=submit 发送post时,需要引入下面的js文件,将其放在static的js文件夹下面,
在html文件中,在jQuery插件引入之后,再引入此文件,就OK了
/**
* Created by python on 17-7-10.
*/
$(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'));
}
});
方法二:
查看网页源代码,在form表单下面会出现一个input
<form id="post_form" method="post" action="/center/post_site/">
<input type='hidden' name='csrfmiddlewaretoken' value='vUTGVSa2zF5ZOszbq9bV3cLqGH4bxpe8' />
在post发送参数的字典中加上一对键值:"csrfmiddlewaretoken":$('input').val(), 即获取到这个input的name和value值,传递给视图,就ok了。
get请求可以直接发送
post请求会出现csrf的403错误
方法一:
input type=submit 发送post时,需要引入下面的js文件,将其放在static的js文件夹下面,
在html文件中,在jQuery插件引入之后,再引入此文件,就OK了
/**
* Created by python on 17-7-10.
*/
$(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'));
}
});
方法二:
查看网页源代码,在form表单下面会出现一个input
<form id="post_form" method="post" action="/center/post_site/">
<input type='hidden' name='csrfmiddlewaretoken' value='vUTGVSa2zF5ZOszbq9bV3cLqGH4bxpe8' />
在post发送参数的字典中加上一对键值:"csrfmiddlewaretoken":$('input').val(), 即获取到这个input的name和value值,传递给视图,就ok了。
相关文章推荐
- django中除了input,a 的普通标签发送ajax的post与get的区别
- django 文件上传和菜单分级,mysql支持事务,F模块自增字段, python发送get,post请求
- Ajax详解及其案例分析之如何获得Ajax对象,使用Ajax对象发送GET和POST请求,校验用户名,POST和GET请求时的乱码处理,实现级联的下拉列表
- ajax的get 和post方式发送请求
- 使用Ajax发送http请求(get&post请求)
- Ajax的GET与POST方式向服务器发送请求
- Ajax发送GET、POST请求和响应XML数据案例
- django 1.4 利用jquery实现ajax ‘get|post’异步请求
- ajax发送get、post请求
- 发送Ajax(get、post)请求时设置为异步
- JavaScript之Ajax-2 Ajax(使用Ajax发送get请求、使用Ajax发送post请求)
- AJAX发送GET、POST、DELETE、PUT请求到服务器
- Django用ajax发送post请求时csrf拦截的解决方案
- AJAX发送POST、GET请求
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- AJAX发送POST请求,请求提交后Method从POST变成GET
- ajax发送get、post请求
- get/post发送HTTP请求2
- java发送http的get、post请求
- 使用JavaScript的XMLHttpRequest发送POST、GET请求以及接收返回值