JSON正在打印而不是重定向

时间:2013-07-18 01:03:39

标签: php jquery ajax json

这是我做过的AJAX登录。

$(function() {
  $('#loginform').submit(function(){

      var uname = $('#username').val();
      var password = $('#password').val();

      $("#loading").show();
      $("#loading").fadeIn(400);

      $.POST('php/authorization.php', (username: uname, password: password),
          function(asd) {
          if(asd.success){
              location.href = asd.redirect;
          }else{
              $('.error').html(asd.message);
          };
      }, 'json');

      return false;
  });

});

和PHP代码段

if($data = mysql_fetch_assoc($raw))
{
  $_SESSION['loggedin'] = true;
  $_SESSION['uid']   = $data['u_id'];
  $_SESSION['uname'] = $data['u_name'];
  $_SESSION['utype'] = $data['u_type'];
  $_SESSION['uactive'] = $data['u_active'];
  mysql_close($link);

  $asd['success']    = true;
  $asd['redirect']   = '../dashboard.php';
}
else 
{
  mysql_close($link);

  $asd['success']   = false;
  $asd['message']   = "Wrong username or password";
}

echo json_encode($asd);

问题是,PHP不是重定向或执行任何操作,而是打印{"success":true,"redirect":"..\/dashboard.php"}

为什么呢?提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试更改:

$.POST('php/authorization.php', (username: uname, password: password), ...

$.post('php/authorization.php', {username: uname, password: password}, ...

我认为您发生的事情是这些错误会阻止javascript运行,因此return false;永远不会被执行,而您的表单只会定期提交。