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

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

Dans ce code (cela fonctionne) data.json contient les données JSON dans ce format:Ajax en javascript ne fonctionne pas

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

Ces données proviennent de l'URL:

http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3
(Cliquez l'URL pour obtenir les données)

Mais quand je remplace data.json dans la fonction $.ajax n avec l'URL qui contient les mêmes données, le code ci-dessous ne semble pas fonctionner ...

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

Toute aide le problème sera très appréciée.
Merci d'avance,
Anand

Répondre

1

La chose est que vous essayez d'accéder à une URL sur un autre domaine (sauf si vous êtes actuellement sur twittercounter.com de la cause). Quoi qu'il en soit, si vous voulez faire des AJAXcalls inter-sites que les navigateurs ne permettent pas en raison de la sécurité, vous devez utiliser le "truc" JSONP. Vous pouvez utiliser JSONP avec jQuery, que vous semblez utiliser. La dernière fois que j'ai vérifié, jQuery avait besoin d'une configuration côté serveur, donc à moins que vous ne puissiez modifier les données, vous devez faire la requête AJAX manuellement, auquel cas vous pourriez l'obtenir en utilisant la méthode JSONP.

0

Essentiellement, vous essayez d'accéder à une requête AJAX interdomaine. Ceci n'est pas autorisé car cela a tendance à compromettre la sécurité du navigateur. Voici une façon que vous pouvez contourner:

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

Noah

Edit: Mon 29 juin 2009 10:24:51 CDT googletorp FTW!