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