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

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

In diesem Code (es funktioniert) data.json enthält die JSON-Daten in diesem Format:Ajax in Javascript funktioniert nicht

{ 
"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":[] 
} 

Diese Daten aus der URL kommt:

http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3
(Click die URL, um die Daten zu erhalten)

Aber wenn ich data.json in der $.ajax functio ersetze n mit der URL, die die gleichen Daten enthalten, dieser Code unten scheint nicht zu funktionieren ...

$(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>'); 
     } 
});}); 

Jede Hilfe mit dem Problem wird sehr geschätzt.
Dank in der Erwartung,
Anand

Antwort

1

Die Sache ist, dass Sie eine URL auf einer anderen Domäne zuzugreifen versuchen (es sei denn, Sie tatsächlich auf twittercounter.com von Ursache sind). Wie auch immer, wenn du Cross-Site AJAXcalls machen willst, die Browser aus Sicherheitsgründen nicht zulassen, musst du den JSONP "Trick" verwenden. Sie können JSONP mit jQuery verwenden, wie es scheint, dass Sie verwenden. Zuletzt überprüfte ich, dass jQuery eine serverseitige Konfiguration erforderte. Wenn Sie also die Daten, die Sie erhalten, ändern können, müssten Sie die AJAX-Anforderung manuell durchführen. In diesem Fall könnten Sie sie mithilfe der JSONP-Methode abrufen.

0

Sie versuchen grundsätzlich, auf eine domainübergreifende AJAX-Anfrage zuzugreifen. Dies ist nicht zulässig, da dies die Browsersicherheit beeinträchtigt. Hier ist ein Weg, dass man es umgehen kann:

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

Noah

Edit: Mo 29. Juni 10.24.51 CDT 2009 googletorp FTW!