2011-09-28 59 views
0

我一直在搜索arround,我無法從這個例子中檢索JSON信息。有人可以幫我嗎?JSON調用失敗,JQuery

var jsonURL = "http://mdc2.cbuc.cat/dmwebservices/index.php?q=dmGetCollectionList/json";

var jqxhr = $.getJSON(jsonURL, function(data) { 
    alert("Success!"); 
    alert(data[0].alias); 
}) 
.success(function() { alert("second success"); }) 
.error(function() { alert("error"); }) 
.complete(function() { alert("complete"); }); 

jqxhr.complete(function(){ alert("second complete"); }); 

我檢查的網址,到處它說是有效的,以及格式化......

+2

只有當它是JSONP時,才能從其他域中檢索JSON。 –

回答

1

由於該請求沒有返回正確的jsonp,瀏覽器無法解釋它。

如果訪問該服務器,就需要進行修改,以接受一個回調函數,如?callback=cbfunc這將然後包裝在一個回調函數的JSON響應,如cbfunc(["foo","bar"]);

如果沒有訪問該服務器,您可以使用第三方解決方案(如YQL),也可以構建一個服務器端代理來向您提出請求。對於YQL,這裏有一個頁面,它可以幫助:

http://developer.yahoo.com/yql/console/#h=SELECT%20*%20FROM%20json%20WHERE%20url%3D%22http%3A//mdc2.cbuc.cat/dmwebservices/index.php%3Fq%3DdmGetCollectionList/json%22

選擇JSON單選按鈕,然後你會發現一個網址的頁面的底部。只是刪除callback=cbfunc部分。

這是已生成的網址:

http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20json%20WHERE%20url%3D%22http%3A%2F%2Fmdc2.cbuc.cat%2Fdmwebservices%2Findex.php%3Fq%3DdmGetCollectionList%2Fjson%22&format=json&callback=cbfunc 

如果請求包含任何敏感數據,我建議對YQL和使用的服務器端腳本來獲取數據。

+0

那麼......第一個答案是我無法回顧JSON的原因,你的問題是我怎麼能超越這個問題,對吧?謝謝你們兩位! – user969228