2010-06-09 4 views
4

J'utilise la jquery suivante pour retourner un xml qui se trouve sur le même sous-domaine:Comment traiter xml retourné à partir jsonp en utilisant jquery?

$.getJSON(myurl, function(data) 
{ 
    debugger; 
    alert(data); 
}); 

Maintenant, chaque fois que je lance ce dans Firebug, je reçois une erreur de js dans Firebug en disant: manquant; avant la déclaration. Les données retournées ressemblent à ceci:

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="somenamespace">...somedata...</string> 

Les données que je veux sont retournées, mais je ne suis pas sûr de savoir comment les utiliser. Je dois accéder à somedata, mais je ne suis pas capable de. Firebug ne s'arrête même pas dans la fonction. Comment puis-je procéder correctement?

Répondre

0

Il semble que vous attendiez que XML soit renvoyé mais vous appelez la fonction qui attend JSON. XML et JSON sont deux manières différentes de coder les données.

Si vous souhaitez obtenir le code XML sous forme de chaîne, vous pouvez utiliser la fonction get de jQuery. Cela nécessiterait que vous analysiez la chaîne vous-même afin d'extraire ...somedata....

Mais si vous souhaitez traiter le contenu de la réponse XML avec jQuery alors votre meilleur pari est d'utiliser la fonction ajax:

$.ajax({ 
    url: myurl, 
    dataType: 'xml', 
    success: function(data) { 
     debugger; 
     alert(data); 
     // untested: 
     var theValue = $('string', data).text(); 
    } 
}); 
+1

Merci, Est-ce que le travail lorsque l'URL est sur un autre domaine? – vikasde

+0

Je reçois un 403 en utilisant le type de données xml. – vikasde

+1

http://api.jquery.com/jQuery.ajax/#dataType Par exemple, si vous souhaitez qu'une réponse textuelle soit traitée en XML, utilisez "text xml" pour dataType. Vous pouvez également faire une requête JSONP, l'avoir reçue en texte et interprétée par jQuery comme XML: "jsonp text xml". De même, une chaîne abrégée telle que "jsonp xml" tentera d'abord de convertir jsonp en xml, et, à défaut, de convertir jsonp en texte, puis de texte en xml. – jhanifen

Questions connexes