我正在尝试以 JSON 格式提交 AJAX 表单。
但是每当提交表单时,我都会重定向到表单操作页面。
HTML
<form id="acc" action="#" method="post" autocomplete="off">{% csrf_token %}
<p>Username: {{accform.username}}</p>
<p>Password: {{accform.password}} </p>
<center><input type="submit" value="update" class="button" /></center>
</form>
jQuery
$("#acc").submit(function(){
username = $(this).find("#id_username").val();
password = $(this).find("#id_password").val();
var arr = { "X-CSRFToken": getCookie("csrftoken"), "username": username, "password": password};
$.post("/myaccount/", arr,function(data){
alert(data);
}, "json");
return false;
});
我也尝试过的上述代码的替代方法是:
$("#acc").submit(function(){
username = $(this).find("#id_username").val();
password = $(this).find("#id_password").val();
var arr = { "X-CSRFToken": getCookie("csrftoken"), "username": username, "password": password};
$.ajax({
url: '/myaccount/',
type: 'POST',
data: JSON.stringify(arr),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function(msg) {
alert(msg);
}
});
return false;
});
我还注意到只有在获取csrftoken
cookie 时才会被重定向。
这是为什么?