Probleme XMLhttpRequest safari/Chrome

payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 1 juil. 2010 à 09:33
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 5 juil. 2010 à 10:12
Bonjour, cela fait maintenant 6 mois que je bloque sur un truc dont je n'ai toujours pas trouvé la solution. J'ai une fonction javascript avec requetes AJAX qui marchent bien sous tous les navigateurs, excepté Chrome et Safari.
Je vous copie/colle le début du code pour que vous voyez q'il n'y a pas d'rreur (la suite n'est pas essentielle puiqu'elle ne s'execute pas)
function ChangeConfig()
{
  var hdd;
  var video;
  var os;
  var soft;
  var xdata = null;
  var resultat_xml = null;

  var dom_hdd = document.getElementById( 'hdd' );
  var dom_video = document.getElementById( 'video' );
  var dom_memoire = document.getElementById( 'memoire' );
  var dom_pcr = document.getElementById( 'pcr' );
  var dom_os = document.getElementById( 'os' );
  var dom_soft = document.getElementById( 'soft' );

  if( dom_hdd != null  && dom_video != null  && dom_memoire != null && dom_pcr != null && dom_os != null && dom_soft != null )
  {
    hdd = getSelected( dom_hdd );
    video = getSelected( dom_video );
    pcr = getSelected( dom_pcr );
    VideOptions( dom_hdd );
    VideOptions( dom_video );
    VideOptions( dom_memoire );
    VideOptions( dom_pcr );
    VideOptions( dom_os );
    VideOptions( dom_soft );

    var requeteAJAX = XMLHTTP;
    requeteTEXT = '/html/requete_client_sql2xml.php?requete=configurateur_station&rattachement=<?php echo $CodeProduitSurMesure; ?>';
                                                                                                     
    requeteAJAX.open('GET', requeteTEXT, false );
    requeteAJAX.send(null);

    if( ( resultat_xml requeteAJAX.responseXML ) null )
    {
// Jusqu'ici tout va bien
      resultat_xml = new ActiveXObject("Microsoft.XMLDOM");
// Là ça ne passe pas
      resultat_xml.loadXML(requeteAJAX.responseText);
    }

    xdata = resultat_xml.getElementsByTagName('data');


Merci beaucoup d'avance.
Ju'

4 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
1 juil. 2010 à 19:14
Bonjour,
as tu essayais sous FireFox ?!!!!
if( ( resultat_xml requeteAJAX.responseXML ) null ) {
// Jusqu'ici tout va bien
  resultat_xml = new ActiveXObject("Microsoft.XMLDOM");
// Là ça ne passe pas
  resultat_xml.loadXML(requeteAJAX.responseText);
}
ce code est EXCLUSIF IExplorer donc c'est normal....



;O)
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
2 juil. 2010 à 09:12
d'accord. Oui ça marche sous FF, IE et Opéra, mais comme requeteAJAX.responseXML != null on ne rentre pas dans la boucle, donc ça marche :)
Mais entre temps, j'ai trouvé hier soir pourquoi le parser XML ne passe pas sous Safari et Chrome, j'ai remplacé

if( ( resultat_xml requeteAJAX.responseXML ) null )
{
  resultat_xml = new ActiveXObject("Microsoft.XMLDOM");
  resultat_xml.loadXML(requeteAJAX.responseText);
}


par :
NavName = navigator.appName;
if ( NavName.toLowerCase() "netscape" || NavName.toLowerCase() "safari" || NavName.toLowerCase() == "chrome" )
{
  requeteAJAX.overrideMimeType('text/xml; charset=iso-8859-1');
}


Or, j'ai un soucis à ce niveau, c'est quen avigator.appName renvoie "NetScape" meme sous safari et Chrome. Quelq'un connait-il une solution pour reconnaitre bien le navigateur sous JS ?

Merci
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
2 juil. 2010 à 18:19
Bonjour,
dans ton cas tu n'as que deux possibilités, c'est IE ou les autres
pour tester IE utilises donc ActiveXObject
if( window.ActiveXObject){
 // ICI c'est IE
}
else {
 // ICI c'est les autres
}


;O)
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
5 juil. 2010 à 10:12
Ok merci au moins ça je le sais maintenant ;)
0
Rejoignez-nous