2009-05-26 83 views
1

jQuery有很酷的方法,比如getJSON,get和load。但是他們最終都會進行AJAX調用。如何使用jQuery訪問API

我想訪問API www.eventsinindia.com/cities/mumbai/events.js?month=2009-05。

該API調用返回JSON格式的數據。

我找不到任何方式從jQuery調用此API並以JSON格式獲取輸出數據。我不斷收到受限制的URI被拒絕的「code:」1012錯誤,因爲jQuery試圖進行AJAX調用。禁止從獨立頁面到服務器的AJAX調用。

回答

2

因爲它位於不同的域上,您使用的是JSONP回調嗎?

http://docs.jquery.com/Ajax/jQuery.getJSON

在jQuery 1.2中,你可以加載JSON位於另一個域 數據,如果你 指定了JSONP回調,可以 做到像這樣: 「?myurl回調=」。 jQuery自動替換? 用正確的方法名稱調用, 調用您指定的回調。此 回調參數可能因API上的 而異,例如Yahoo Pipes 需要「_callback =?」

+0

JSONP也對服務器端的支持。正常的JSON響應應該被包裝在url參數的值內。因此,如果你有myurl?callback = a32b5c2,結果應該如下所示: a32b5c2({}); – gregers 2009-05-26 18:53:01

0

由於@ceejayoz建議JSONP技術必須用於訪問不同域上的數據。但爲了實現此目的,服務器端腳本必須啓用JSONP,這意味着它必須接受一個參數,該參數將定義一個客戶端回發函數名稱以預先添加到JSON數據中。如果不是這種情況,則需要在承載客戶端腳本的域上編寫服務器腳本,以充當通向外部域的橋。

0

如果它不是一個跨域請求,你只需要:

jQuery.getJSON("/cities/mumbai/events.js?month=2009-05", function(json) { 
    alert(json[0]); 
});