基于AJAX调用重定向到新页面


Redirecting to a new page based on an AJAX call

我使用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");
}

这个问题本来可以更清楚,我建议你在再次发帖之前检查一下你的拼写和代码。

问题是你没有发送重定向页面,你已经发送了被重定向调用的页面。

修复此问题:

首先,去掉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调用的页面。