我们都知道在JQ中其中一条提交 csrf方式为
$.ajax({
url:"/login/",
type:"POST",
data:{'a':'abc'},
headers:{ "X-CSRFtoken":$.cookie("csrftoken")},
success:function (arg) {
}
}
就是在 headers 请求头中设置X-CSRFtoken。
那么在原生Ajax中也是一样的
<script>
function XMLAjax() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
alert(xhr.responseText);
}
};
xhr.open('POST','/ajax_out/');
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.setRequestHeader(
'X-CSRFToken','VxA6OiwZwMGIqB2YCzZZe5UXhh4p8cB3cfeRRU9RSUeXucEZU5dCDV3BmAgBvjeZ');
xhr.send("i1=12&i2=19");
}
</script>
设置请求头
xhr.setRequestHeader(
‘X-CSRFToken’,’VxA6OiwZwMGIqB2YCzZZe5UXhh4p8cB3cfeRRU9RSUeXucEZU5dCDV3BmAgBvjeZ’);
这样就不会再提示报错了403了。