Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1089 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [AJAX]Caution provisional headers are shown

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[AJAX]Caution provisional headers are shown

n°2226882
brutax
Posté le 30-04-2014 à 22:33:44  profilanswer
 

Salut à tous :)
 
Bon, voilà, j'ai un problème qui me tracasse.
J'ai une fonction en ajax qui ne marche pas sur certains PC, quel que soit le navigateur.
Par exemple, depuis chez moi tout fonctionne, depuis le boulot, tout fonctionne, depuis chez un ami, ça passe pas.
 
Comment fonctionne le script :
Dans un menu déroulant, je choisis un compte de comptabilité (60, 61, 62 etc). De là, j'ai un deuxième menu déroulant qui se remplit avec les sous-comptes du compte choisi (602000, 603000 etc).
 
Chez ceux pour qui ça ne marche pas, le débogueur de chrome me renvoie :
 
Caution provisional headers are shown
 
Voici mon code :
 

Code :
  1. <script type="text/javascript" language="javascript">
  2. <!--
  3. function getCptFromClass(type, src)
  4. {
  5. var selclass = document.getElementById('classe_'+type+'_'+src);
  6. var index = selclass.selectedIndex;
  7.  
  8. cpt = selclass.options[index].value;
  9. var Xhr_Object = null;
  10. if (window.XMLHttpRequest) // Mozilla
  11. {Xhr_Object = new XMLHttpRequest();}
  12. else if(window.ActiveXObject) // Internet Explorer
  13. {Xhr_Object = new ActiveXObject('Microsoft.XMLHTTP');}
  14. else // XMLHttpRequest non supporté par le navigateur
  15. {
  16.  alert("__IncompatibleXMLHTTP__" );
  17.  return;
  18. }
  19. //Récupération du XML sur la page serveur
  20. var Source = 'http://mondomaine.fr/page/includes/req_cptFromClass.php';
  21. //choix de la méthode post pour discuter avec le serveur
  22. Xhr_Object.open('POST', Source, true);
  23. //4 : le serveur a fini de travailler et a envoyé une réponse.
  24. Xhr_Object.onreadystatechange = function()
  25. {
  26.  if(Xhr_Object.readyState == 4)
  27.  {
  28.   var XML_Doc = Xhr_Object.responseXML;
  29.   var comptes = '';
  30.   if(XML_Doc.getElementsByTagName('Compteur').item(0).firstChild.nodeValue<0)
  31.   {
  32.    comptes += 'Aucun compte pour cette classe.';
  33.   }
  34.   else
  35.   {
  36.     for (Index = 0; Index <= XML_Doc.getElementsByTagName('Compteur').item(0).firstChild.nodeValue; Index++)
  37.     {
  38.    var numero_cpt=XML_Doc.getElementsByTagName('numero').item(Index).firstChild.nodeValue;
  39.    var nom=XML_Doc.getElementsByTagName('nom').item(Index).firstChild.nodeValue;
  40.     comptes += '<option value="'+numero_cpt+'">'+numero_cpt+' - '+nom+'</option>';
  41.     }
  42.   }
  43.   document.getElementById('compte_'+type+'_'+src).innerHTML=comptes;
  44.  }
  45. }
  46.  Xhr_Object.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  47.  var Arguments = 'classe='+cpt+'&type='+type;
  48.  Xhr_Object.send(Arguments);
  49. }
  50. -->
  51. </script>


 
Et voici le fichier getCptFromClass.php
 

Code :
  1. <?php
  2.   header('Pragma: no-cache');
  3.   header('Expires: 0');
  4.   header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  5.   header('Cache-Control: no-cache, must-revalidate');
  6.   header("Access-Control-Allow-Origin: *" );
  7.   header('Content-type: application/xml');
  8.  
  9. session_start();
  10. include("./connectdb2.php" );
  11. if($_POST['type']=="ch" )
  12. {
  13.  $table="comptes_charges2";
  14. }
  15. elseif($_POST['type']=="pr" )
  16. {
  17.  $table="comptes_produits2";
  18. }
  19. $chaine_req="
  20. SELECT numero, nom
  21. FROM ".$table."
  22. WHERE id_compte='".$_POST['classe']."'
  23. ORDER BY numero ASC
  24. ;";
  25. $req_cpt=mysql_query($chaine_req)or die(mysql_error());
  26.       $Xml = new xmlWriter();
  27.       $Xml->openMemory();
  28.       $Xml->setIndentString('   ');
  29.       $Xml->setIndent(true);
  30.       $Xml->startDocument('1.0','iso-8859-1');
  31.       $Xml->startElement ('Comptes');
  32.  
  33.   if (mysql_num_rows($req_cpt)>0)
  34.      {// Créer un objet xmlWriter qui écrit des balises xHTML
  35.       while ($Sql_Ligne_M = mysql_fetch_array($req_cpt))
  36.              {
  37.     $Xml->startElement ('numero');       $Xml->text  ($Sql_Ligne_M['numero']);             $Xml->endElement();
  38.               $Xml->startElement ('nom');       $Xml->text  ($Sql_Ligne_M['nom']);               $Xml->endElement();
  39.    }
  40.           $Xml->startElement ('Compteur');       $Xml->text  (mysql_num_rows($req_cpt) - 1);                $Xml->endElement();
  41.      
  42. }
  43. else
  44. {
  45.  $Xml->startElement ('Compteur');       $Xml->text  (-1);                $Xml->endElement();
  46. }
  47. $Xml->endElement();
  48.  
  49.   print $Xml->outputMemory(true);
  50.   Unset($_POST, $Sql_Ligne_M, $req_cpt, $Xml);
  51.  
  52. mysql_close();
  53. ?>


 
Voilà.
 
Vous êtes mon dernier espoir !  [:cocacolalight]  
 
Merci pour votre aide
 [:astra74]

mood
Publicité
Posté le 30-04-2014 à 22:33:44  profilanswer
 

n°2226884
Thordax
Shop smart. Shop S-Mart !
Posté le 30-04-2014 à 23:02:54  profilanswer
 

Adblock ?  
 
http://stackoverflow.com/questions [...] e-debugger


---------------
Atari 520 ST 256 Ko
n°2226888
brutax
Posté le 01-05-2014 à 00:05:50  profilanswer
 

Et non ^^
J'y ai pensé.
J'ai aussi testé en navigation privée, pas mieux -_-

n°2226990
brutax
Posté le 02-05-2014 à 14:01:12  profilanswer
 

Bon, j'ai essayé avec jQuery, c'est aps mieux -_-
 
Maintenant, j'ai ça :
(sauf sur certains PC où ça marche)
http://hfr-rehost.dev.syn.fr/self/978190142914ac03d0ce4c9e16bbabda11708ade.png
 
Je sèche là...

n°2227014
brutax
Posté le 02-05-2014 à 17:50:03  profilanswer
 

Bon, j'ai changé 2 ou 3 trucs. Et après moultes bidouilles, j'ai remarqué que dans la fichier php reqCptFromClass.php (celui qui exécute la requêtes SQL), il n'arrive pas à lire une variable de session et du coup, ça marche pas.
 
J'ai bien mon session_start();
mais la variable $_SESSION['bdd'] n'est pas reconnue (c'est celle qui permet de sélectionner la base de données où doit s'exécuter la requête).
Sauf que, partout ailleurs dans le site, elle est lue, c'est que dans l'Ajax que ça pose problème.
 
++

n°2227016
brutax
Posté le 02-05-2014 à 18:28:22  profilanswer
 

Bon, ben j'ai fait passer la nom de ma base de données via le GET.

Code :
  1. data : 'classe='+cpt+'&type=pr'+'&bdd=<?php echo $_SESSION['bdd']; ?>',


 
et voilà

n°2227055
gatsu35
Blablaté par Harko
Posté le 03-05-2014 à 13:57:38  profilanswer
 

c'est juste dégueulasse de faire ça :s


---------------
Blablaté par Harko
n°2227084
brutax
Posté le 03-05-2014 à 18:29:37  profilanswer
 

ouais, mais j'ai pas de meilleure solution :-/

n°2227098
gatsu35
Blablaté par Harko
Posté le 03-05-2014 à 22:00:17  profilanswer
 

Ben si, ça signifie que le fichier que tu appelles (celui qui fait ton appel à la base) ne doit pas avoir de session_start()


---------------
Blablaté par Harko
n°2227143
brutax
Posté le 05-05-2014 à 08:25:58  profilanswer
 

Ben si, justement,
en première ligne, juste après le "<?php"
 
Même que ça marchait sur d'autres PC (le mien par exemple).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [AJAX]Caution provisional headers are shown

 

Sujets relatifs
Ajax "async: false" et bug sur Chrome / SafariErreur AJAX/JS
[JQUERY/ASP/ORACLE]TABLE AJAX COLLAPSE PAGINATIONAJAX - Recupérer ID après injection
Petit problème ajax avec JSONAjax formulaire dans une boucle
Autocomplétion ajax avec différents champsComment lancer une fonction php en ajax?
Problème jQuery.ajax( et phprecuperer id en ajax/php
Plus de sujets relatifs à : [AJAX]Caution provisional headers are shown


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR