2009-06-17 51 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应您解决一切后顾之忧。它会在早上给你打电话。