[AJAX] Ne fonctionne pas sous IE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [AJAX] Ne fonctionne pas sous IE

Re: [AJAX] Ne fonctionne pas sous IE

par yopopipo » 12 févr. 2010, 15:35

En js ca fonctionne tres bien, je reste donc la dessus!

Re: [AJAX] Ne fonctionne pas sous IE

par stealth35 » 12 févr. 2010, 15:29

Bon, je viens de dire une enormité, oubliez ce que vous venez de lire !!
Chose bizard... avec un parametre Math.random(), ca fonctionne, mais echo time(), ca ne fonctionne pas...
spé...

Re: [AJAX] Ne fonctionne pas sous IE

par yopopipo » 12 févr. 2010, 15:27

Bon, je viens de dire une enormité, oubliez ce que vous venez de lire !!
Chose bizard... avec un parametre Math.random(), ca fonctionne, mais echo time(), ca ne fonctionne pas...

Re: [AJAX] Ne fonctionne pas sous IE

par yopopipo » 12 févr. 2010, 14:55

Bon à savoir ! Je ne savais même pas qu'il existait des parametres (passé par GET) reconnus nativement par les navigateurs.

Re: [AJAX] Ne fonctionne pas sous IE

par stealth35 » 12 févr. 2010, 12:54

lors d'un appel AJAX, si tu a des problèmes de cache, je te conseille de rajouter un paramètre à ton nom de fichier, du style (avec jQuery)

Code : Tout sélectionner

url: "ajax/file.php?time="+<?php echo time(); ?>
Ainsi le timestamp est toujours différent et donc le fichier est toujours considéré comme nouveau.
pas besoin de php

Code : Tout sélectionner

var date = new Date(); url: "ajax/file.php?time=" + date.getTime()

Re: [AJAX] Ne fonctionne pas sous IE

par Yosh » 12 févr. 2010, 12:46

lors d'un appel AJAX, si tu a des problèmes de cache, je te conseille de rajouter un paramètre à ton nom de fichier, du style (avec jQuery)

Code : Tout sélectionner

url: "ajax/file.php?time="+<?php echo time(); ?>
Ainsi le timestamp est toujours différent et donc le fichier est toujours considéré comme nouveau.

Re: [AJAX] Ne fonctionne pas sous IE

par Truc » 12 févr. 2010, 11:35

Modération :
Puisque ta question est résolue, je l'indique en ajoutant la petite icône verte "Résolu" pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.

TTu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente, si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

Re: [AJAX] Ne fonctionne pas sous IE

par Yopopipo » 11 févr. 2010, 16:49

YEEEEESSSSSSSSSSS !!! :twisted:
Ca fonctionne,
c'était donc dû au cache.

Voilà donc ma fonction qui fonctionne:

Code : Tout sélectionner

function file(fichier) { xhr_object = getXMLHTTP(); xhr_object.open("GET", fichier + "&nocache=" + Math.random(), false); xhr_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); }

J'avais pourtant lu les problemes dûs au cache, je le vidais donc comme ceci:

Code : Tout sélectionner

<?php header("Expires: Mon, 17 Jul 1978 05:00:00 GMT"); header('Last-Modified: '.gmdate('D, d M Y H:i:s',time()).' GMT'); header("Cache-Control: no-store, no-cache, must-revalidate");//HTTP/1.1 header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); //HTTP/1.0
Mais il faut croire que c'etait insuffisant.

Merci encore !!

Re: [AJAX] Ne fonctionne pas sous IE

par jojolapine » 11 févr. 2010, 15:25

Re: [AJAX] Ne fonctionne pas sous IE

par Yopopipo » 11 févr. 2010, 15:17

Bon j'ai testé en mettant des alert JS toutes les 5 secondes à la place du innerHTML.
Mais ca ne marche toujours pas, l'alerte me retourne constamment la première valeur trouvée dans la BDD.(je vide le cache de la page à chaque fois)
Franchement ça commence à me prendre le choux !!
Je vais voir ce que ça peut donner avec jquery.

Re: [AJAX] Ne fonctionne pas sous IE

par jojolapine » 11 févr. 2010, 14:47

Et utiliser un framework?? Comment ca se passe?
En ce qui concerne le framework jQuery, sa documentation en ligne est bien fournie et te donnera les indications nécessaires. Enfin, si tu es à l'aise avec l'anglais… ;)
Il y une traduction de la doc ici: http://jquery.developpeur-web2.com/ (pas encore à jour pour la version 1.4, mais dans l'ensemble pour commencer ;) )
Et une autre doc api (en anglais): http://jqapi.com/

Re: [AJAX] Ne fonctionne pas sous IE

par erasme » 11 févr. 2010, 12:21

Et le innerHTML ? Il y a un bug avec IE...

cf. http://support.microsoft.com/kb/276228/fr

Re: [AJAX] Ne fonctionne pas sous IE

par Victor BRITO » 11 févr. 2010, 10:41

Et utiliser un framework?? Comment ca se passe?
En ce qui concerne le framework jQuery, sa documentation en ligne est bien fournie et te donnera les indications nécessaires. Enfin, si tu es à l'aise avec l'anglais… ;)

Re: [AJAX] Ne fonctionne pas sous IE

par yopopipo » 10 févr. 2010, 19:07

Toujours pas.. pas d'erreur. mais jamais a jour.
Que faire pour gros debutant comme moi??? Et utiliser un framework?? Comment ca se passe?

Re: [AJAX] Ne fonctionne pas sous IE

par stealth35 » 10 févr. 2010, 18:40

Il me semble que tu ne vérifie pas suffisamment les objets disponibles pour l'instanciation de l'objet XMLHttpRequest. Essaie de corriger le code définissant ta variable xhr_object comme suit :

Code : Tout sélectionner

// Connexion XMLHTTPRequest function fnXHR () { try { return new XMLHttpRequest (); } catch (e) { try { return new ActiveXObject ('Msxml.XMLHTTP'); } catch (ee) { try { return new ActiveXObject ('Microsoft.XMLHTTP'); } catch (eee) { return false; } } } } var xhr_object = fnXHR ();
non parce que IE7 c'est 'new XMLHttpRequest()'
et faire des try dans try dans des try c'est pas beau