flask ajax发送请求返回400

在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请求就可以了

猜你喜欢

转载自www.cnblogs.com/vinic-xxm/p/11690070.html