2010-01-13 30 views
2

我試圖通過Ajax加載Twitter帳戶的最後一篇文章。我有網址,也就是:

http://twitter.com/statuses/user_timeline/myuser.json?count=1 

這工作:

$.get("test.php", function(data){ 
    alert("Data Loaded: " + data); 
}); 

這並不甚至提出一個要求,如果我監視螢火控制檯:

$.get("http://twitter.com/statuses/user_timeline/myuser.json?count=1", function(data){ 
    alert("Data Loaded: " + data); 
}); 

我'與.load,.post,.ajax有同樣的問題...

我該怎麼做?


編輯:

我嘗試使用的getJSON:

$.getJSON("http://twitter.com/statuses/user_timeline/user.json?count=1", 
       function(data){ 
        alert("here"); 
       }); 

...還不算什麼,我甚至不得到警報。

回答

4

JSONP需要對其它服務器的請求。嘗試將&callback=?添加到您的網址末尾。

請參閱手冊:http://docs.jquery.com/Ajax/jQuery.getJSON無論如何,如果您知道要取回JSON,您應該也可以使用此方法。

+0

JSONP絕對是最好的也是最簡單的方法jQuery的。毫無疑問,它的效果很好(&callback =?是必要的。) – 2010-01-13 15:53:25

+0

哦,我的壞,我忘了&callback =? ,它看起來像現在正在工作!我仍然需要測試它是否真的返回了我想要的對象,但它看起來不錯 – marcgg 2010-01-13 15:56:48

+0

它工作的很棒!萬歲! – marcgg 2010-01-13 15:58:55

2

jQuery的正確的語法得到調用是這樣的:

$.get("http://twitter.com/statuses/user_timeline/myuser.json", {count: "1"},   
function(data) { 
    alert("Data Loaded: " + data); 
}); 

你必須通過queristring參數作爲PARAMS名稱/值集合(第二個參數)。但是你仍然會遇到其他答案提到的問題。

0

根據您的需要,您還可以使用Flash客戶端代理來傳遞您的請求。 Flash沙盒對於跨域請求的限制較少。

例如,參見http://flxhr.flensed.com/

+0

感謝您的回答,但這聽起來像對我來說過分了。我只想顯示帳戶的最後一條推文 – marcgg 2010-01-13 15:47:23