在flaskWTF使用csrf保护后,一般提交form表单都需要一个隐藏的csrf
这样可以成功提交,但是使用ajax提交时就不能成功提交,会返回400错误,服务器无法理解请求,这样就需要新的方法解决ajax csrf请求问题
在网页中添加
meta name="csrf-token" content="{{ csrf_token() }}">
在ajax请求上面添加
var csrftoken = $('meta[name=csrf-token]').attr('content')
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
})
然后再发送ajax请求就可以了