2013-02-03 74 views
0

我正在嘗試使用getJson讀取網址。它既不會觸發成功功能,也不會觸發錯誤。使用getJson讀取跨網域網址

var url = "http://demo.dreamacc.com/TextTable.json?callback=?"; 
      $.ajax({ 
       type: 'GET', 
       url: url, 
       async: false, 
       jsonpCallback: 'jsonCallback', 
       contentType: "application/json", 
       dataType: 'jsonp', 
       success: function (ooo) { 
        alert('hi'); 
        alert(ooo); 
       }, 
       error: function() { 
        alert('w'); 
       } 
      }); 

,但是當我嘗試讀取這個網址

http://api.twitter.com/1/statuses/user_timeline/codinghorror.json?callback=? 

它工作得很好

回答

4

端點(您請求的URL,http://demo.dreamacc.com/TextTable.json)不支持JSONP的回報。

您將無法使用JSONP請求從本網站檢索數據。


JSONP作品通過指定到遠程服務器來包裝(經由callback GET參數定義的函數名)函數調用中的JSON對象。如果端點不支持此操作並正確修改其響應,則無法使用JSONP從該站點檢索數據。

實例:

推特(支持JSONP): [Normal JSON | JSONP]

demo.dreamacc(不支持JSONP): [Normal JSON | JSONP that doesn't work]

如您所見,demo.dreamacc.com端點不會在函數調用中包裝響應。

+0

可以將IIS配置爲支持JSONP返回嗎? –

+0

這不是IIS。你必須用代碼處理這種情況。根據用於提供數據的技術(正常的ASP.NET工作流,MVC2,WCF,PHP),您必須對該代碼進行一些特定的修改才能支持JSONP返回。 –

+0

你能給我舉個例子嗎? –