Angularjs和服务器端返回值(PHP)


Angularjs and server side return value (PHP)

有人能向我解释为什么当我的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);
      });

您可以尝试使用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');