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

时间:2011-09-08 12:02:35

标签: php jquery ajax

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

1 个答案:

答案 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调用的页面。