2013-03-06 144 views
2

我想加載一個RSS飼料使用谷歌的飼料API給我一個JSON字符串。
(文檔:https://developers.google.com/feed/)。谷歌飼料API與jQuery的AJAX

但是,我試圖使用jQuery的AJAX而不是香草JavaScript XHR。 由於某些原因,我無法確定原因。 然而,在瀏覽器中加載URL(請參閱下面的代碼中的鏈接)。

我準備了的jsfiddle:http://jsfiddle.net/gberger/fNwpD/

$.ajax({ 
     url:'http://ajax.googleapis.com/ajax/services/feed/load?hl=ja&output=json-in-script&q=http%3A%2F%2Ffeeds.gawker.com%2Flifehacker%2Ffull&v=1.0&num=3', 
     success: function(data){ 
      alert(JSON.stringify(data)); 
     }, 
     error: function(error){ 
      alert(this.url); 
      alert(JSON.stringify(error)); 
     } 
}); 
+0

你請也顯示工作香草代碼?它應該顯示您在控制檯中使用此代碼獲得的相同錯誤。 – kapa 2013-03-06 22:21:58

+0

您的小提琴顯示相同的原產地策略錯誤。 – Musa 2013-03-06 22:22:37

+0

請使用[瀏覽器中的控制檯](http://webmasters.stackexchange.com/questions/8525/how-to-open-the-javascript-console-in-different-browsers)輕鬆地調試這樣的代碼。如果您要求幫助,最好還包括錯誤消息。 – kapa 2013-03-06 22:29:54

回答

4

只需添加dataType: 'jsonp'到你的選擇對象。由於Same-origin policy,您的代碼不起作用。如果服務器支持它,JSONP是處理這種情況的一種方法(Feed API)。

$.ajax({ 
    url: 'xy', 
    success: function() {}, 
    error: function() {}, 
    dataType: 'jsonp' 
}); 

Your working fiddle

+0

哇。一個字符修復。哈哈。謝謝! – gberger 2013-03-06 22:29:18

+0

@GuilhermeBerger但是這個角色變化很多:)。 – kapa 2013-03-06 22:31:19