1. 程式人生 > >django中原生Ajax的csrf問題

django中原生Ajax的csrf問題

我們都知道在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了。