1

我有这个简单的 Ajax 代码,我的问题只是,data.logged 返回什么,以及我需要在logged.php 文件中有什么......

我是ajax新手,抱歉这个愚蠢的问题......

$.ajax('logged.php', {
                                data: {
                                    login:  login,
                                    pass:   pass
                                },
                                success: function(data)
                                {
                                    if (data.logged)
                                    {
                                        setTimeout(function() {
                                            document.location.href = 'index.php'
                                        }, 2000);
                                    }
                                    else
                                    {
                                        setTimeout(function() {
                                        formLogin.clearMessages();
                                        displayError('Utilizador ou password errados');
                                        }, 2000);
                                    }
                                },
                                error: function()
                                {
                                    formLogin.clearMessages();
                                    displayError('Error while contacting server, please try again');
                                }
                         });
4

2 回答 2

2

在客户端,添加dataType : 'json'对我有用。

$.ajax('handler.php', {
  data: {
    login:  login,
    pass:   pass
  },
  dataType : 'json',
  success: function(data)
  {
    //code here
  }

  //more code here
}

然后在服务器端:

$user = $_GET['login'];
$pass = $_GET['pass'];
$result = array();
if( /* login logic here */) {
    $result['logged'] = 'true';
} else {
    $result['logged'] = false;
}
header('Content-type: application/json');
echo json_encode($result);
于 2013-02-19T02:01:21.557 回答
0

这是一个jQuery AJAX 请求,它需要JSON格式的 responseText 。在这种情况下,您的 PHP 文件返回的 JSON 似乎只需要一个属性logged,该属性将取决于登录是否成功truefalse

于 2012-08-03T12:00:33.007 回答