2009-06-29 147 views
0
$(document).ready(function() { 

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

在此代码(它的工作原理)data.json包含这种格式的JSON数据:阿贾克斯的javascript不工作

{ 
"user_id":"3190399", 
"user_name":"Anand_Dasgupta", 
"followers_current":"86", 
"date_updated":"2009-06-04", 
"url":"", 
"avatar":"205659924\/DSC09920_normal.JPG", 
"follow_days":"0","started_followers":"86", 
"growth_since":0, 
"average_growth":"0", 
"tomorrow":"86", 
"next_month":"86", 
"followers_yesterday":"86", 
"rank":176184, 
"followers_2w_ago":null, 
"growth_since_2w":86, 
"average_growth_2w":"6", 
"tomorrow_2w":"92", 
"next_month_2w":"266", 
"followersperdate":[] 
} 

此数据来源于网址:

http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3
(点击获取数据的URL)

但是当我替换data.json中的$.ajax函数n与包含相同数据的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>'); 
     } 
});}); 

任何有关该问题的帮助将不胜感激。
由于在期待,在
阿南德

回答

1

的事情是,你正在试图访问不同域中的URL(除非你实际上是对事业的twittercounter.com)。无论如何,如果你想做跨浏览器因为安全而不允许的AJAX调用,你必须使用JSONP“技巧”。您可以使用JSONP与jQuery,它看起来像你正在使用。最后我检查了一下,jQuery需要一些服务器端配置,所以除非你能改变你得到的数据,否则你必须手动执行AJAX请求,在这种情况下,你将能够使用JSONP方法获得它。

0

基本上你试图访问一个跨域AJAX请求。这是不允许的,因为它往往会危害浏览器的安全。这是一种方式,你可以避开它:

http://code.google.com/p/cross-domain-ajax/

诺亚

编辑:周一6月29日10时24分51秒CDT 2009年googletorp FTW!