2010-01-14 3 views
1

Je suis en train de prendre http://lib.softvoyage.com/cgi-bin/gate_dest_hotels.xml?code_ag=nwi&alias=tpi&language=en&with_cdata=y via AJAX mais il revient sans cesse nadda (Firebug capture d'écran ici: http://img683.imageshack.us/img683/3279/firebug.jpg)JQuery AJAX GET retour d'un fichier vide

Voici le code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
     <title>Search Form</title> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    </head> 
    <body> 
     <form method="post" action="#"> 
      <label for="gateway_dep">Leaving From:</label> 
      <select id="gateway_dep" name="gateway_dep"> 
       <option value="">Select a gateway</option> 
       <option value=""></option> 
       <option value="">Loading gateways</option> 
      </select> 
     </form> 
     <script type="text/javascript"> 
     <!-- 
      $(document).ready(function() { 
       $.ajax({ 
        url:"http://lib.softvoyage.com/cgi-bin/gate_dest_hotels.xml?code_ag=nwi&alias=tpi&language=en&with_cdata=y", 
        cache:false, 
        dataType:"text", 
        type:"GET", 
        success:function(xml) { 
         alert(xml); 
        } 
       }); 
      }); 
     --> 
     </script> 
    </body> 
</html> 

Répondre

1

Vous ne pouvez utiliser AJAX sur les pages du même domaine que la page en cours. Si vous voulez obtenir des données d'une source externe, vous devrez utiliser la fonction getJSON et l'autre site devra retourner les données dans un formulaire que getJSON peut traiter.

Vous pouvez également avoir un proxy côté serveur qui fait la requête get sur le serveur où les limitations AJAX n'existent pas et renvoie ensuite les données à votre page.

+0

Ahh vous avez raison pour une raison quelconque inter-domaine ne me vient même pas à l'esprit comme un problème –

0

Vous ne pouvez pas faire de demandes via l'appel $ .ajax à un autre domaine, un bon message pour les rondes de travail est ici: http://www.wait-till-i.com/2010/01/10/loading-external-content-with-ajax-using-jquery-and-yql/ Ceci est une mesure de sécurité pour empêcher dis, votre annonce/iframe sur une page recueillant mes informations de connexion sur la page, puis le télécharger sur un autre site. Votre meilleur pari est un proxy sur votre propre domaine, ou bien utilisez l'approche YQL et passez par Yahoo, ceci est détaillé dans le blog ci-dessus.