【问题标题】:Angularjs and server side return value (PHP)Angularjs 和服务器端返回值 (PHP)
【发布时间】:2013-11-28 06:22:32
【问题描述】:

有人可以向我解释为什么当我的 PHP 脚本“返回”一个值时,我在 angularjs 中得到“未定义”,但是当我打印一个值时,我的响应值是准确的。我的 PHP 必须做什么才能返回一个 json 对象?

这是我的 PHP

$postdata = file_get_contents("php://input");
$data = json_decode($postdata, true);

if ( $data['username'] == "myusername" && $data['password'] == "mypassword") {  
    $status = "success";
} else {
    $status = "failure";
}

print $status;

这是我的指令中处理 xhr 请求的部分

    $http.post("http://lessons.localhost/login.php", user_data)
    .success(function(response) {

        switch (response) {

            case "success":
            sessionStorage.userStatus = "success";
            break;

            case "failure":
            sessionStorage.userStatus = "failure";
            break;

            default:
                sessionStorage.userStatus = "absent";
            break;
        }

      console.log(sessionStorage.userStatus);
      });

【问题讨论】:

  • AJAX 请求只是请求某种格式的文本。您总是需要打印或echo 出您想要检索的内容。以echo json_encode($something) 为例。

标签: javascript php angularjs


【解决方案1】:

您可以尝试使用echo json_encode(array('status'=>$status)); 代替print $status;

    $http.post("http://lessons.localhost/login.php", user_data, 
        function(response) {
         var result =  response.status;
            switch (result) {                        

                case "success":
                sessionStorage.userStatus = "success";
                break;

                case "failure":
                sessionStorage.userStatus = "failure";
                break;

                default:
                    sessionStorage.userStatus = "absent";
                break;
            }

          console.log(sessionStorage.userStatus);
          }, 'json');

【讨论】:

    猜你喜欢
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多