在flask wtf(v.0.14.2,python3.4.6)here的文档之后,当我从一个简单的单选按钮对一个onchange
事件做出反应时,我得到了一个CSRF token is missing
400错误。在
<script type="text/javascript">
// Send the status of the radio buttons using AJAX
function radio_changed(){
var csrf_token = "{{ csrf_token() }}";
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrf_token);
}
}
});
var radioValue = $("input[class=radios]:checked").val();
//alert(radioValue);
$.ajax({
url: '/_radio_update',
data: {value:radioValue},
type: 'POST',
success: function(response){
console.log(response);
},
error: function(error){
console.log(error);
}
});
}
</script>
后来呢
^{pr2}$在烧瓶侧:
...
from flask_wtf.csrf import CSRFProtect
app = Flask(__name__)
app.secret_key = 'shhhhhhh!'
csrf = CSRFProtect(app)
@app.route('/_radio_update', methods=['GET', 'POST'])
def _radio_update(radiostatus):
print(radiostatus)
...
我错过什么了吗?在
从}导入的
wtforms
导入的Forms
与从{Forms
之间似乎有区别,根据{a1}末尾的注释,这导致了问题。在在处理了弃用通知后,我终于改了行:
到
^{pr2}$这就解决了我的问题。在
相关问题 更多 >
编程相关推荐