2015-11-28 99 views
0

我從數據庫JSON數據:角HTTP GET JSON沒有得到JSON

{ 「用戶」: 「搶」 ,, { 「用戶」: 「約翰」 ,, { 「用戶」: 「克里斯」 ,,等等等

我正在使用Angular獲取JSON並將其放置在HTML表格中。

<table> 
    <tr> 
    <th>Username:</th> 
    </tr> 
    <tr ng-repeat="x in names"> 
<td>{{ x.user}}</td> 

使用下面的腳本:

<script> 
    arudate.controller('customersCtrl', function($scope, $http) { 
    $http.get("sqlTest.php") 
    .success(function (response) {$scope.names = response.records;}); 
     }); 
</script> 

但我什麼也沒得到,如無JSON,即使它顯示爲在sqlTest.php

檢索到的任何人都可以請提供任何幫助或疑難解答?

回答

0

確保您的sqlTest.php腳本將正確的響應Content-Type標頭設置爲application/json。否則,angular將不知道自動處理響應。如果您的服務器腳本不正確返回頭,你可能需要手動解析爲JavaScript對象的響應:

$http.get('sqlTest.php').success(function (response) { 
    $scope.names = JSON.parse(response).records; 
}); 

另外,還要確保您的JSON是這樣的:

{ 
    "records": [ 
     { "user": "Bob" }, 
     { "user": "John" }, 
     { "user": "Chris" }, 
     ... 
    ] 
} 

另一件事你應該關注的是Web瀏覽器開發人員工具欄的控制檯,以解決任何潛在的錯誤。

+0

謝謝,但我不認爲就是這樣。該代碼適用於我所有其他數據庫,但不適用於此類數據庫。 –

+0

控制檯中是否有任何錯誤?你還檢查了網絡標籤,看AJAX請求是否成功並返回200? –

0

你只顯示錶格的頂部html - 我們可以假設你在這裏有一個完整的表格結構嗎?

<table> 
    <tr> 
     <th>Username:</th> 
    </tr> 
    <tr ng-repeat="x in names"> 
     <td>{{ x.user}}</td> 
    </tr> 
</table> 

,如果你用你的陣列來迭代名的單數形式,例如「名稱名稱」,而不是「在名稱X」,在這種情況下你這也使得更清晰的代碼得到的人或用戶的數組,並顯示他們的名字,所以我建議這樣的:

<table> 
    <tr> 
     <th>Username:</th> 
    </tr> 
    <tr ng-repeat="user in users"> 
     <td>{{user.name}}</td> 
    </tr> 
</table> 

我不正是確保您的數據是什麼樣子,但如果你得到用戶的列表它應該是這樣的結構:

[ 
    { 
     "name": "Bob" 
    }, 
    { 
     "name": "John" 
    }, 
    { 
     "name": "Chris" 
    } 
] 

嘗試將您的json文件保存爲文本並從文件系統中首先加載它,然後從實時數據源/數據庫中獲取數據,並首先通過http://jsonlint.com傳遞json文件以確保其有效。這樣你只能解決你的代碼問題,而不是一個可能有缺陷的數據格式和一個數據服務,它們可能會或可能不總是響應。