jq的ajax post提交表单提交,Django JQuery AJAX提交表单POST请求刷新pag

我有一个登录表单,我希望客户机发送AJAX POST请求,如下所示,并提供错误处理。在验证/身份验证错误的情况下,我不会使用从login视图的响应接收到的JSON字符串将页面重新加载或刷新到与POST request Handler(/users/login/)相对应的url。我试着使用event.preventDefault(),这是许多关于SO的答案所建议的,但无法使其发挥作用。这里出什么问题了吗?我不认为这是Django的问题。我知道触发了onsubmit,因为窗口重定向到POST处理程序URL /users/login/,其中包含预期的JSON字符串响应{"error": ["Entered mobile number is not registered"]}

JQuery代码$("#loginform").on('submit', function(event) {

event.preventDefault();

alert("Was preventDefault() called: " + event.isDefaultPrevented());

console.log("form submitted!");

var url = "/users/login/";

$.ajax({

type: "POST",

url:url,

data: $("#loginform").serialize(),

success: function(data)

{

console.log(data);

var result = JSON.stringify(data);

if(result.indexOf('errors')!=-1 ){

console.log(data);

if(data.errors[0] == "Mobile number and password don't match")

{

$('.login-error').text("Mobile number and password don't match");

}

else if(data.errors[0] == "Entered mobile number is not registered")

{

$('.login-error').text("Entered mobile number is not registered");

}

}

else

{

window.open("/users/profile/");

}

//var result = JSON.stringify(data);

// console.log(result);

}

})

});

查看处理程序

^{pr2}$

HTML代码

 

 

Login to your profile


 

 

 

{% csrf_token %}

LOG IN