2015-12-02 44 views
1

好了,所以我一直在試圖找回從這個網站在JSON一個字符串: http://blog.teamtreehouse.com/api/get_recent_summary/?count=1如何使用JavaScript和jQuery從JSON檢索數據?

這是片斷我:

<html> 
<head> 
<title>Simple Page</title> 
</head> 
    <script src="jquery.js"></script> 
    <script> 
    $(document).ready(function() { 
     $.getJSON('http://blog.teamtreehouse.com/api/get_recent_summary/?count=1', function(data) 
     { 
      alert(data.title) 
     });  
    }); 
    </script> 
</html> 

只是想獲得一個簡單的標題和顯示爲一個警報或只是寫在網站上,出於某種原因,我不明白。我也檢查了我的jQuery正在工作,所以它不能這樣。

在此先感謝!

+1

大概是因爲沒有'根JSON元素title'屬性,但'posts'陣列 – JCOC611

+0

中的每個元素我會console.write(數據),看看什麼東西回來,如果有的話。可能是標題而不是標題或JSON對象沒有被返回。 – jnoreiga

+0

這就是我運行請求時得到的結果:「XMLHttpRequest無法加載http://blog.teamtreehouse.com/api/get_recent_summary/?count=1。沒有'Access-Control-Allow-Origin'頭部存在於請求的資源「。所以你只是沒有權限閱讀這個資源,除非服務器給你許可 – MrE

回答

4
No 'Access-Control-Allow-Origin' header is present on the requested resource. 

CORS HTTP標頭丟失,所以你不能直接做AJAX請求。您需要使用服務器端代理或使用http://crossorigin.me/服務從遠程網站獲取數據。

服務器要訪問提供JSONP支持,所以您可以通過添加callback=?它轉換成JSONP調用URL

$.getJSON('http://blog.teamtreehouse.com/api/get_recent_summary/?count=1&callback=?', function(data) 
{ 
    alert(data.posts[0].title) 
}); 

在情況下,如果JSONP不支持,你可以使用crossorigin.me服務,但我會不依賴此服務進行生產使用。

$.getJSON('http://crossorigin.me/http://blog.teamtreehouse.com/api/get_recent_summary/?count=1', function(data) 
     { 
      alert(data.posts[0].title) 
     }); 
0

望着那從端點提供返回的數據回調應該讀alert(data.posts[0].title)

+0

這是有道理的,但由於某種原因,它仍然沒有得到任何東西。 – Noah