我正在使用ajax和jQuery从我网站上的页面发出请求。现在,如果登录失败(或者由于其他原因导致调用失败),我将返回错误消息并将其放入标签中。但如果通话成功,我想导航到另一个页面。我的问题是,如果通话成功,我最终会在标签中显示新页面的文字。
这是我的Javascript:
$.post("chklogin.php", { username: username, password: password }, function(data) {
$('#msg').html(data);
});
这是它所调用的PHP:
if(mysql_num_rows($result)==0) {
$msg="<h3>Enter valid Username and Password.</h3>";
echo $msg;
} else {
$row=mysql_fetch_assoc($result);
$_SESSION["userid"]=$row["pgmail"];
header("location:user.php");
}
答案 0 :(得分:6)
这个问题本来可以更清楚一点,我建议您在再次发布之前检查拼写和代码。
问题是您没有将页面发送到重定向,您已将要调用的页面发送到重定向。
解决此问题:
首先,摆脱PHP代码的标题重定向并替换为:
echo 'SUCCESS';
其次,将您的AJAX代码更改为以下内容:
$.post("chklogin.php", { username: username, password: password }, function(data) {
if(data=='SUCCESS'){
window.location.href = "user.php";
}else{
$('#msg').html(data);
}
});
这将使页面重定向,而不是AJAX调用的页面。