2010-07-08 8 views
1


Considérons l'extrait de code suivant:

function parseXml(xml) 
{  
    xmlObject= xml;  
    alert(xmlObject.xml); 
} 
function close(errroMsg) 
{ 
//Displayed Error Message 
} 

$(document).ready(function() 
{ 
    $.ajax(
      { 
       type: "POST",    
       url: "ServiceProvider.aspx", 
       dataType: "xml", 
       success: parseXml, 
       failure: close 
      } 
     ); 
}); 

Dans IE-8 l'alerte (xmlObject.xml) disaplays xml chaîne. mais dans Mozilla il affiche indéfini. J'utilise jquery-1.4.2 Je n'ai pas réussi à comprendre l'erreur. Merci d'avance.

+0

Avez-vous essayé simplement d'appeler 'alerte (xml);'? – jAndy

+0

Ouvrez la console Firebug et voyez quelle est la réponse du serveur à la requête AJAX - si elle est en cours de déclenchement. Peut-être que IE a XML-parsing laxer et votre réponse XML est mal formé. –

+0

Salut, il affiche Xmlobject. –

Répondre

2

IE a une implémentation légèrement différente des documents XML d'autres navigateurs, l'une des différences étant que dans IE il y a une propriété xml du document.

Si vous voulez sérialisation XML dans une chaîne dans tous les navigateurs, vous pouvez utiliser les éléments suivants:

function serializeXmlDoc(xmlDoc) { 
    if (window.XMLSerializer) { 
     return (new window.XMLSerializer()).serializeToString(xmlDoc); 
    } else if (typeof xmlDoc.xml != "undefined") { 
     return xmlDoc.xml; 
    } 
} 
+0

.xml est l'extension Microsoft XMLDOM, non disponible dans les autres navigateurs normalement. – airmanx86

+0

Merci à vous tous. Un merci spécial à Tim Down pour avoir trouvé la solution qui a fonctionné pour moi. –

Questions connexes