$.ajax({
type: "POST",
url: "core/login.php",
data: userInfo,
contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success: function(msg){
if ($.trim(msg) == "success")
{
$('#status').load('home.php #status'); //refresh status: now shows as logged in
}
else
{
$('#error').html(msg); //this statement will execute whatever "$error" in login.php is, as html
$('#error').fadeIn(500).show();
}
}
});
基本上,我有一个网站的登录表单。 login.php处理userInfo(包含用户名和密码),然后返回" success"或"错误"。如果成功,则在不刷新页面的情况下将用户显示为已登录(只需刷新div)。如果失败,则无需刷新页面,显示错误/失败的原因。
在Chrome和Safari中,一切正常。但是在IE8和Firefox中,当出现登录错误时,用户被重定向到显示错误的新页面(但我希望用户在同一页面上保持,因此我使用Ajax)。如果成功,则不会刷新状态div并显示现在已登录的状态,而是消息" success"再次显示在新页面上。
如何解决此问题,以便在所有浏览器中,在整个登录过程中无刷新?非常感谢你!
答案 0 :(得分:0)
使用e.preventDefault()
来阻止触发默认操作。
实施例
$("form").submit(function(e){
e.preventDefault();
$.ajax({
//ajax code here
});
});
以下是有关e.preventDefault
的更多信息
http://api.jquery.com/event.preventdefault/
编辑:
在stackoverflow上查看这个答案..