2013-11-28 2 views
-1

Может кто-нибудь объяснить мне, почему, когда мой PHP-скрипт «возвращает» значение, я получаю «неопределенный» в angularjs, но когда я печатаю значение, значение моего ответа является точным .. Что бы мое 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'); 
Смежные вопросы