2013-11-28 79 views
-1

有人可以向我解釋爲什麼當我的PHP腳本「返回」一個值,我在angularjs中得到「undefined」,但是當我打印一個值時,我的響應值是準確的。 PHP必須做的返回一個JSON對象?Angularjs和服務器端返回值(PHP)

這是我的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); 
     }); 
+0

的AJAX請求只是以特定格式請求文本。您始終需要打印或「回顯」您想要檢索的內容。因此'echo json_encode($ something)'例如。 – elclanrs

回答

2

你可以嘗試使用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');