2015-09-26 42 views
0

我有修身PHP編程的API,它發送這樣的JSON響應:如何通過Angular JS獲取Slim PHP Api的http響應內容?

$response['some-text'] = 'blabla'; 
$app->response->setStatus(200); 
$app->response()->headers->set('Content-Type', 'application/json'); 
echo json_encode($response, JSON_UNESCAPED_UNICODE); 

現在,當我在瀏覽器中打開一個API網址,如想顯示消息。但是,如果我用這樣的角度JS打開相同的URL與我離子應用:

$http.get("URL").success(function(response) {console.log(response)}); 
當我事後檢查控制檯

,我只看到了代碼(200),但該消息沒有JSON。但是,我確信API確實接收了調用,因爲像向數據庫添加項目一樣正確執行。但是我怎樣才能得到迴應?

/編輯 下面是從控制檯,空響應的外觀截圖像

頭:http://i.imgur.com/CCawaIA.jpg

答案:http://i.imgur.com/xo46MpJ.jpg

+0

不使用'.success'使用'.then'。 '.success'折舊。 –

+0

api是否與頁面製作請求位於相同的域,協議和端口? – charlietfl

+0

當你發出請求時,嘗試從'response.data.id'這樣的響應中打印出特定的內容,這會告訴你它是否正確進入。儘管明顯使用自己的JSON –

回答

0

我找到了解決辦法。雖然我不確定它是否合適,但它確實有效。

$app->response()->headers->set('Access-Control-Allow-Origin', '*'); 
$app->response()->headers->set('Access-Control-Allow-Methods', 'GET'); //or whatever you need 
$app->response()->headers->set('AAccess-Control-Allow-Headers', 'X-Requested-With'); 

,如果你不使用超薄PHP,應該等於:

我在PHP中添加此代碼,以我的響應函數

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: GET'); 
header("Access-Control-Allow-Headers: X-Requested-With");