2013-03-22 74 views
2

即時通訊嘗試訪問使用json和jquery(僅公共推文)的twitter數據庫。我寫了一個函數。那就是:頁面加載使用json訪問公共推文

$(document).ready(function(){ 
alert("1"); 
$("button").click (function(){ 
    alert("2"); 
    $.getJSON("http://search.twitter.com/search.json?q=messi", function(data){ 
     alert("3"); 
    }); 
    alert("4"); 
}); 

} 後出現警報,說1,符合市場預期。當我點擊按鈕時,出現兩個警報,分別說2和4。看來getJSON函數有問題,我無法解決它。

回答

1

您的代碼通過發出跨域請求侵犯了Same Origin Policy

您可以通過它JSONP要求解決這個問題 - 這是不是一個Ajax請求的,不受同源策略 - 通過添加callback=?參數的查詢字符串:

$.getJSON("http://search.twitter.com/search.json?q=messi&callback=?", function(data){ 
    alert("3"); 
}); 

Fiddle

jQuery.getJSON reference

當請求URL包含callback=?參數jQuery的自動假設它作爲JSONP請求並將此abstra這使得它看起來像一個Ajax請求。您可以使用包含解析的JSONP響應的data對象。

ps。你可能想看看Dev Tools'(或Firebug的)console的發展。與alert不同,它是非阻塞的,可讓您顯示各種數據類型和嵌套數據結構。

+1

感謝您的回覆。這對我幫助很大。 – otp 2013-03-22 22:03:58