2010-06-25 7 views
1

Bonjour, j'ai envoyé une requête ajax au serveur de base de données et le type de données de retour est xml mais l'IE est incapable de le rendre. mais sur chrome il fonctionne. Ce qui pourrait être mauvais dans mon code En fait, je ne reçois aucune réponse pour le serveur. Le nom de l'élément que j'utilise dans mon document xml est ,,, et rien de plus. donc je ne sais vraiment pas où le problème peut mentir.

$.ajax({ 
     url:'gethint.php', 
     type:'GET', 
     data:'p=p' + '&cust_uid=i', 
     datatype:'xml', 
     timeout:5000, 
     error:function(){alert('unable to establish connection to the server ');}, 
     success:function(xml){outputResponseXML(xml);} 
    }); 
    function outputResponseXML(xml) 
{ 
    $('div#me').empty(); 
    var element =$(xml).find('USER'); 
     if(element.length>0) 
      { 

      $(xml).find('USER').each(
      function(index) 
       { 

        var ename= ($(this).find('ENAME').text()=='E')?'':$(this).find('ENAME').text(); 
        var operator=($(this).find('OPERATOR').text()=='E')?'':$(this).find('OPERATOR').text(); 
        var pnr =($(this).find('PNR').text()=='E')?'':$(this).find('PNR').text(); 
        var inr=($(this).find('INR').text()=='E')?'':$(this).find('INR').text(); 
        var $newDiv= $('<div class=\"items\" id =\"'+inr +'\">' 
           +ename+'<br/>'+operator+ 
           '<br/>'+ pnr+'</div>'); 
            $newDiv.appendTo('div#me'); 
            }); 

          } 
          else 
          { 
           $('div.me').html('no suggestions found'); 
          } 
} 
+0

Pouvez-vous poster la réponse à venir? IE n'aime pas les noms d'éléments qui sont des éléments HTML réels dans votre XML. –

+0

vérifiez votre taux d'acept! – Thariama

+0

Je vois que vous avez eu une question similaire l'autre jour. http://stackoverflow.com/questions/3081071/convert-a-string-to-xml-doc-with-jquery-or-the-other-way-round Est-ce que ** Aaron ** a répondu à l'aide? Ça devrait marcher. Les "add-ons" sont-ils désactivés dans l'IE que vous utilisez? Cela se produit apparemment dans certaines installations. – user113716

Répondre

1

Je pense que le problème est avec votre page "gethint.php".

Essayez de mettre l'en-tête de votre page PHP:

 
header("Content-Type: text/xml; charset=utf-8", true); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: -1"); 
header("Pragma: no-cache"); 

Et ne pas oublier d'imprimer cette ligne dans le résultat XML (doit être la première ligne)

<?xml version="1.0" encoding="utf-8"?> 

Cette garantie Internet Explorer le lira correctement.

Nettoyez votre cache après les modifications.

Je suis content que cela ait aidé. Désolé pour le mauvais anglais. Ce n'est pas ma langue principale.

+0

votre anglais est presque parfait dans ce post. Vous avez seulement manqué un ne pas au lieu de ne pas. –

+1

+1. Le type de contenu est la clé. Si le script ne peut pas dire qu'il s'agit de XML, il ne prendra même pas la peine de l'analyser. responseText aura les données correctes, mais responseXML sera 'null'. Si le trafic du site est élevé et que ce fichier est chargé, la désactivation de la mise en cache côté navigateur peut avoir des effets extrêmement négatifs. – Andrew