天天看點

ajax 發送 csrf 資訊

Flask 使用 csrf 保護後,需對前端做出以下更改:

在 

<meta>

 标簽中渲染 CSRF 令牌:

<meta name="csrf-token" content="{{ csrf_token() }}">

 最後在響應的js檔案中,必須添加以下代碼,為其添加 

X-CSRFToken

 頭:

var csrftoken = $('meta[name=csrf-token]').attr('content')

$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken)
        }
    }
})      

若不添加以上的 ajax 代碼,ajax 送出資訊時出現 POST http://xxxx 400 (BAD REQUEST)    jquery.js:8630 的錯誤!

參考資訊:http://www.pythondoc.com/flask-wtf/csrf.html