2009-06-17 53 views
0

在$就功能的URL部分具有data.json這是一個文本文件,但我想提出一個URL即

代碼工作與

$(document).ready(function() { 

    $('#content').html(''); 
    $.ajax({ 
      url:'data.json', 
      dataType: "json", 
      success: function(data) { 
        $('#content').append('<p>'+data.rank+'</p>'); 
      } 
    });}); 

其中data.json是一個文本文件...但聞一替換「data.json」與 「http://twittercounter.com/api/username=Anand_Dasgupta&output=json&results=3」 ......這是實際的URL,那麼就沒有輸出...

$(document).ready(function() { 

    $('#content').html(''); 
    $.ajax({ 
      url:'http://twittercounter.com/api/username=Anand_Dasgupta&output=json&results=3', 
      dataType: "json", 
      success: function(data) { 
        $('#content').append('<p>'+data.rank+'</p>'); 
      } 
    });}); 

的意見將得到高度讚賞。 謝謝。

http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3 

至於我看起來缺少一些參數:

回答

1

正如@ harshath.jr正確地指出的那樣,你需要代理,通過您的域名請求,例如:

$('#content').html(''); 
    $.ajax({ 
      url:'twitterProxy.php?username=Anand_Dasgupta&results=3', 
      dataType: "json", 
      success: function(data) { 
        $('#content').append('<p>'+data.rank+'</p>'); 
      } 
    });}); 
+2

我同意需要代理服務器,但上面提出的代理服務器可能相當危險,因爲它實際上破壞了跨域規則。上面的例子似乎暗指一個旨在接受任何網址的代理。這將允許潛在的攻擊者在您的網站環境中運行外部代碼。 我會建議專門爲您需要的服務編寫代理,如「TwitterCounter.aspx?username = Anand_Dasgupta&results = 3」。可以對這樣的代理進行改進,以對您需要的結果進行假設,即您可能只想要返回JSON。 – kim3er 2009-06-17 12:10:08

1

看來你的網址有錯字,因爲它從參數區分URL的問號是顯著。

編輯:

下面的答案好像比我更正確,它絕對可以跨域訪問。

5

這似乎是一個跨域AJAX預防的情況。

您需要爲此使用服務器端代理腳本。

1

使用$.getJSON應您解決一切後顧之憂。它會在早上給你打電話。