2009-04-14 11 views
2

J'utilise JSONP pour obtenir des données d'un serveur.jQuery: JSONP: Execute Received Info

La méthode la plus typique de traiter ce problème est d'obtenir les données et ensuite le javascript déterminer quoi faire avec les données (mise à jour d'une div, etc)

Cependant, au lieu de répondre avec des données simples, la le serveur répond avec le code jQuery réel qui doit être exécuté. Comment puis-je faire en sorte que mon javascript accepte cette réponse et l'exécute réellement? Je l'ai fait avec beaucoup de succès avec Mootools (en utilisant evalScripts), mais je ne peux pas le comprendre dans jQuery. L'avantage est que le code côté client est beaucoup plus petit et que moins de travail doit être effectué dans le navigateur.

Exemple:

$.getJSON("http://appbeacon.com/index.php?model=blah_blah_blah", function(data){ 
    $.each(data, function(i,item){ 
     console.log(item); 
     // Need to execute "item" ?????? 
    }); 
});   

Exemple de réponse (qui ne sont plus JSON encodée):

$("#1_cmd_group").remove(); 
$("#2_cmd_group").remove(); 
$("#3_contents").html("<li>blah blah blah"); 

Répondre

2
eval(item); 

donnent qu'une aller

+0

JSON est pas censé être le code. Vous devriez le voir de manière interchangeable avec XML. –

+0

Merci. C'était beaucoup plus facile que prévu. J'ai édité mon post original avec la méthode de Mootools de faire ceci, alors il s'est levé sur moi pour rechercher le google pour "jquery evalScripts". Je suis venu avec plusieurs solutions alambiquées. Votre réponse était exacte. Merci, Justin – Justin

+0

Content de pouvoir aider. Juste une note cependant. eval() est relativement lent par rapport à l'exécution de code normal, soyez donc prudent lorsque vous l'utilisez. –