2010-11-29 12 views
0

J'ai besoin d'obtenir des données d'une API qui retourne le format xml. voici l'url api: http://api.tubeupdates.com/?method=get.status&lines=all&format=xmljquery comment obtenir des données à partir de l'API xml

voici mon code jquery:

$(document).ready(function(){ 
       $.get('http://api.tubeupdates.com/?method=get.status&lines=all&format=xml', function(d){ 

        $(d).find('line').each(function(){ 
         var $line = $(this).find('name').text() 
         var $mex = $(this).find('message').text() 
         $('#status').append($line+'<br>'+$mex+'<br><br>'); 
        }); 
       }); 
      }); 

Le div #status retourne vide. Mon code jquery semble bien car avec un fichier xml physique cela fonctionne. Qu'est-ce que je fais mal?

Merci à l'avance,

Mauro

Répondre

2

Vous ne pouvez pas récupérer le XML inter-domaines comme celui-ci, vous devrez utiliser JSONP si le serveur supporte. XML doit être récupéré via XMLHttpRequest ... qui est bloqué par le same origin policy.

Malheureusement, il ne regard comme ce site prend en charge JSONP, mais il ne supporte JSON régulière: http://api.tubeupdates.com/?method=get.status&lines=all&format=json

+0

ok, donc cela fonctionnera-t-il si j'utilise json pour aller chercher les données? Désolé mon ignorance, je suis assez nouveau à ceci :) – Mauro74

+0

@ Mauro74 - non, il doit être JSONP, qui crée fondamentalement un '

0

Retirez le $ de cette ligne variable et ajouter:

var line = $(this).find('name').text(); 
var mes = $(this).find('message').text(); 
$('#status').append(line + '<br/>' + mes + <br/>);