按照文档上说的,我使用
var csrftoken = "{{ csrf_token() }}"
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$('button#ajax').click(function() {
$.ajax ({
type : "POST",
url : "{{ url_for('index.login') }}",
data:JSON.stringify({
name: $('input[name="name"]').val(),
passwd: $('input[name="passwd"]').val()
}),
contentType: 'application/json;charset=UTF-8',
success: function(result) {
if (result.judge == true)
{
window.location = '/';
}
else
{
$("#showerror").show();
$("#error").text(result.error);
}
}
});
});
不知道这样行不行,如果使用了 ajax ,
janja2 模板中的
<form action="{{ url_for('index.login') }}" method="POST" >
{{ form.hidden_tag()}}
{{ form.name }}
{{ form.passwd }}
</form>
form 标签还需不需要?
环境:flask + flask_wtf + jquery
请教各位大神
1
ljcarsenal 2016-02-02 17:55:19 +08:00
form 表单提交会跳转页面 和 ajax 提交两种不同的方式。 csrf 是 web 漏洞,防止的方法是提交表单的时候提交一个随机的字符串,就像代码里 csrftoken 生成的一样。。
|
2
weaming 2016-02-03 15:05:05 +08:00
CSRF 跨站请求伪造
CORS 跨域资源共享 |
3
ruanyu1 2016-02-03 15:42:02 +08:00
$.ajaxSetup({
headers: { 'X-CSRF-TOKEN': '<token here>' } }); |
4
honmaple OP |