Flux rss
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

[AJAX] Problème de compatibilité IE

Seb, le mardi 29 août 2006 à 14:09:27 
 Signaler ce message aux modérateurs

Bonjour,

Je fais des tests sur la techno AJAX et rencontre un problème depuis plusieurs jours sans trouver de solution.

Le script de test que j'ai réalisé est ici : http://gameonweb.free.fr/Ajax/.
Ca consiste juste à mettre à jour régulièrement 2 zones de la page (avec des temps de chargement différents pour vérifier l'affichage du message d'attente) et la mise à jour manuelle d'une troisième zone ("test3").

Le script marche parfaitement sous FireFox mais pas du tout sous IE :(
En fait sous IE, la première requête marche mais les requêtes suivantes semblent ne pas passer du tout dans la méthode onreadystatechange de l'objet.

Quelqu'un aurait-il déjà rencontré ce genre de problème auparavant?
Merci d'avance,
Seb.

1

Seb, le mardi 29 août 2006 à 15:11:23

Le problème viendrait-il de la définition de la définition de la fonction onreadystatechange dans http://gameonweb.free.fr/Ajax/ajax.js ?

Répondre à Seb

2

Seb, le mardi 29 août 2006 à 15:13:07

Le problème viendrait-il de la définition de la définition de la fonction onreadystatechange dans http://gameonweb.free.fr/Ajax/ajax.js ?

Répondre à Seb

3

Seb, le mardi 29 août 2006 à 16:23:23

Personne :(

Répondre à Seb

4

zigwen, le mardi 29 août 2006 à 16:57:32

Salut,

Je suis loin d'être sur de moi, mais c'est pas tout simplement parceque tu as mis en commentaire la création de l'activeX Microsoft.XMLHTTP ?
@+.
Gwen

Répondre à zigwen

5

Seb, le mercredi 30 août 2006 à 10:00:39

Non c'est sensé être compris par IE justement.

Répondre à Seb

6

Sébastien, le mercredi 11 avril 2007 à 10:38:38

Bonjour

Je profite que ce topic existe déjà pour vous exposer un problème que j'ai rencontré en développant une solution ajax pour le site http://generationsfm.com.

Voici le code de ma fonction dans son état actuel :

<script language="JavaScript" type="text/javascript">

function getXhr() {
var xhr = null;

//firefox
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}

//ie
else if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}

//non supporté
else {
alert("Fonction non supportée par le navigateur");
xhr = false;
}

return (xhr);
}

function getTrack()
{
var xhr = getXhr();

//on définit l'appel de la fonction au retour serveur
xhr.onreadystatechange = function() {

if (xhr.readyState == 4 && xhr.status == 200) {
var resultat = xhr.responseText;
document.getElementById('div_track').innerHTML=resultat;
}

};

//on appelle le fichier reponse.txt
xhr.open("GET","http://generationsfm.com/ajax_track.php?act=track",true);
xhr.send(null);

setTimeout("getTrack()", 5000);
}

window.onload=getTrack;
</script>

il n'y a aucun problème sous firefox, mais la mise à jour n'est jamais faite sous ie, même en rafraichissant la page :/
le seul moyen de mettre à jour l'affichage est de relancer le navigateur
voilà si quelqu'un à une idée...
merci !

cordialement
sébastien

Répondre à Sébastien

7

Waar, le mercredi 6 juin 2007 à 00:09:49
  • +1

Sous IE il faut appeller la fonction :
header("Cache-Control: no-cache");
au debut de votre fichier php.
Ou alors mettre la meta balise equivalente.
Sinon il ne mettra pas a jour les appels apres le premier.
J'avais le meme probleme, avec ca ca a marche.
J'espere que ca vous aidera.

Fab.

Répondre à Waar

19

elmoute49, le samedi 5 avril 2008 à 00:43:21

Un coucou pour te dire MERCI

je commencais à faire des requetes via XmlHttpRequest...

A chaque lancement de la fonction une requete SQL via une autre page php

et mon pb etait que sous IE j'avais un souci par rapport

à mozilla et opera resolu par le fait d'inserer la commande suivante:

header("Cache-Control: no-cache");

la requete ne se lancait que lors du premier lancement du script js. sous IE.

m'enfin ca a l'air de fonctionner . Tu as du en dépatouiller plus d'un.

MERKI enkore une fois.

Bonne continuation

Julien

Répondre à elmoute49

8

nunjee, le mardi 10 juillet 2007 à 10:50:06

Je confirme, avec header no-cache ça fonctionne

Répondre à nunjee

9

Alexis, le jeudi 19 juillet 2007 à 19:42:37

Et chez moi ça marche pas :( Pas de rafraichissement après la première donnée envoyée :/

Répondre à Alexis

10

Alexis, le jeudi 19 juillet 2007 à 20:05:39

Mais j'ai trouvé pourquoi... j'avais inversé 2 lignes dans le code javascript.
Celles-ci:
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;

(j'avais mis la 2 avant la 1)
Deux jours à chercher sur ce problème !

Répondre à Alexis

11

zefoots, le jeudi 9 août 2007 à 23:54:54

Salut,

pour ceux que ça intéresse, même problème avec Opera ... et même solution que celle utilisée pour IE

Répondre à zefoots

12

mecton4.0, le jeudi 23 août 2007 à 09:23:41

En gros bourrin ayant eut le meme probleme , j'avais rajouté un random en GET


merci pour cette solution :)

Répondre à mecton4.0

13

naoh, le lundi 24 septembre 2007 à 01:42:06

J'ai été confronté au meme problème pour la création dun gadget vista.
Si vous n'êtes pas maître de la page php appelée, il faut faire varier la requête par exemple en mettent une fausse variable à faire vairer à chaque appel :

counter++;
http.open("GET", "test.php?counter="+counter, true);

C'est pas forcément très propre, mais je n'ai pas trouvé d'autre solution pour "passer outre le cache de IE.

Répondre à naoh

14

rpayet37, le jeudi 18 octobre 2007 à 11:00:43

Bonjour,

Oui j'ai eu le même problème à savoir: impossible d'effectuer 2 fois de suite une requête (même POST) asynchrone, seule la 1ère marche.
En effet la solution est bien d'affecter la propriété onreadystatechange de l'objet HTTPRequest APRES CHAQUE appel à
sa méthode open(), et avant chaque appel à sa méthode send().

Répondre à rpayet37

15

lali, le mardi 30 octobre 2007 à 14:55:05

Bonjour,

j'ai le meme probleme ,

j'ai essayé tout essayé, ca marche des fois et des fois ca ne marche pas !

sous FF ca marche parfaitement

quelqu'un a trouvé une solution efficace et ferme ?

merci pour votre aide

Répondre à lali

16

Algaris, le mardi 4 décembre 2007 à 15:45:58

Bonjour, j'ai aussi le même problème...
J'ai suivi tous les conseil que j'ai lu ici et encore une fois, sous FF tout va bien alors que sous IE, seule la premiere requete passe...

Quelqu'un a une solution ?
Merci d'avance :)

Répondre à Algaris

17

WM Ondarun, le samedi 12 janvier 2008 à 20:54:14

L'idée de mettre une variable get ou post différent grace a un compteur n'est pas bete XD

Mais perso, je vous conseil largement la ptit ligne magique !!

header("Cache-Control: no-cache");

Mettez ca au début de vos page appelée, et vous verez IE7 ne garde plus la première ouverture en CACHE XD

Répondre à WM Ondarun

18

loulia, le mardi 5 février 2008 à 00:37:04

Mon interenet explorer ne marche pas ? je voudré savoir pourkoi et qsq il fau faire
merci

Répondre à loulia

20

anaelle21, le jeudi 17 avril 2008 à 17:26:01

Merci pour la petite ligne magique, elle a bien fonctionné pour moi.

Répondre à anaelle21

21

Tulule, le mardi 6 janvier 2009 à 08:57:03

Salut,

J'ai le même problème que vous.
Mes scripts AJAX fonctionnent sous FireFox, mais avec IE ça ne fonctionne pas.
J'ai essayé avec header("Cache-Control: no-cache"); et ça ne change rien du tout.

Quelqu'un aurait une autre solution svp ?

Merci d'avance.

Répondre à Tulule

22

voob, le samedi 7 février 2009 à 22:55:42

La solution que j'ai trouvé est d'ajouter une var aléatoire au bout de ton url.

ex
/////////////////////////////////////////////////
function contenu_panier()
{
var count = Math.random(); /// Math.random sélectionne un nombre entre 0 et 1 ( ex: 0.6489534931546957)
var contenu_panier = CreateXMLHttpRequest ();
var method = 'GET';
var filename = 'includes/contenu_panier.php?session=<?php echo $idsession;?>&count='+count; // ici ajout du résultat de la variable Math.random()
contenu_panier.open(method, filename, true);
contenu_panier.onreadystatechange = function()
{
if(contenu_panier.readyState == 4)
{
var tmp = contenu_panier.responseText;
document.getElementById('panier').innerHTML = tmp;
new Effect.Appear('panier','slide',{duration:0.3});
}
}
contenu_panier.send(null);
}

//////////////////////////
Grâce à cette méthode aucun problème sous IE6/7, Firefox ou Opera.

Répondre à voob

23

 ajaxdev, le mercredi 18 mars 2009 à 12:48:19

J'ai eu le meme problème (script ajax qui fonctionne sur firefox mais sur IE j'avais un message "erreur sur la page") :

ce n'est pas lié au cache, le header nocache est une solution simplement pour les soucis de cache via les proxy etc , surtout si vous faites des échanges Aajx en GET (je vous recommande le POST, c'est plus propre et ça laisse moins de trace sur les fichiers de log des proxy et des serveurs , car en GET on voit passer tout les paramatres de la ligne .. ).

en fait c'est lié à la déclaration du mime type et surtout du charset du script php qui renvoie le résultat à votre script ajax , j'ai trouvé la soluce ici :
http://zacly.free.fr/zp/Ajax_erreur_internet_explorer.php

merci

Répondre à ajaxdev
Compatibilité IE et Moz Firefox Bonjour, Mon blog est hébergé par myspace et utilise un code css que j'ai raffistolé, sans le maîtriser du tout... Le problème est que le résultat sur IE et Moz Firefox n'est pas le même. L'affichage est correct sur Firefox ; Par contre, les blocs... www.commentcamarche.net/forum/affich-4303976-compatibilite-ie-et-moz-firefox
Lecteur vidéo compatible firefox et IE Bonjour, je recherche en vain ZE code HTML pour afficher un lecteur vidéo afin de lire ma vidéo sur mon site, COMPATIBLE avec Firefox et IE =D Google ne me sort que des sujets de 2005 ou des sujets pas très cohérents. Cordialement www.commentcamarche.net/forum/affich-10278042-lecteur-video-compatible-firefox-et-ie
[CSS] Pb compatibilité IE <-> Mozilla Bonjour, je suis assez débutant en CSS. Mais j'ai fait un code qui apparement touche au problème de compatibilité entre IE et Mozilla, voici le code pour la balise "Body": BODY { COLOR: Black; MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px; MARGIN-TOP: 2px;... www.commentcamarche.net/forum/affich-438877-css-pb-compatibilite-ie-mozilla
Désinstaller IE 8Désinstallation d'IE 8 Vous avez installé IE8 pour le tester et vous souhaitez désormais revenir à une version précédente ? Voici la procédure à suivre pour les OS suivants : Windows Vista Windows XP Windows Vista Ouvrir le... www.commentcamarche.net/faq/sujet-16084-desinstaller-ie-8
Rendre un logiciel compatible avec VistaLa plupart des anciens logiciels ne sont pas compatibles avec Vista, c'est peut être dû au graphisme de Vista ou bien aux droits d'utilisation du PC. Cette astuce peut vous dépanner quelques fois, cependant elle n'est pas toujours... www.commentcamarche.net/faq/sujet-15674-rendre-un-logiciel-compatible-avec-vista
Linux - Mon matériel est-il compatible ? Comment l'installer ?Cette liste de liens a pour but de vous aider à faire fonctionner vos périphériques sous Linux, ou bien de vous aider à choisir du matériel compatible avec ce système. Plusieurs sites sont en anglais, dans ce cas un lien vers une traduction... www.commentcamarche.net/faq/sujet-8507-linux-mon-materiel-est-il-compatible-comment-l-installer
Rendre mon site compatible avec mozilla fireBonjour, Bonjour tout le monde; j'ai crée mon site compatible avec IE mais qd j'ai voulu vérifié avec mozilla Firefox j'ai vu qu'il ne prend pas en considération mes feuilles de styles. SVP esq qlq peut me guider pour résoudre ce pb? on m' a dit que... www.commentcamarche.net/forum/affich-3658790-rendre-mon-site-compatible-avec-mozilla-fire
Php/ajax encodage partiel (Résolu)Bonjour a tous, mon probleme est assez énervant =/ et j'ai beau sillioner les forum ... je n'ai toujours pas reussi a resoudre mon probleme :( alors voila, j'ai fait un miniChat (en ajax) sur mon site. il fonctionne tres bien mis a part un point ... ... www.commentcamarche.net/forum/affich-6650410-php-ajax-encodage-partiel
Compatibilité IE / FireFox (Résolu)bonjour, je viens d'installer, et donc je découvre, firefox seulement pour le menu de mon site, là, de visu ... il y a problèmeSSS ! (http://www.unesourisetmoi.info) auriez-vous la solution ??? problèmes avec le menu: décallage à gauche sous firefox /... www.commentcamarche.net/forum/affich-2197885-compatibilite-ie-firefox
Télécharger Pack de compatibilité Microsoft Office 2007En installant le pack de compatibilité pour Microsoft Office 2000, Office XP ou Office 2003, vous pouvez ouvrir, modifier et enregistrer des fichiers à l'aide des nouveaux formats de fichier Word, Excel et PowerPoint 2007. Le pack de compatibilité... www.commentcamarche.net/telecharger/telecharger-34055375-pack-de-compatibilite-microsoft-office-2007
Télécharger ASP.NET Ajax ChatASP.NET Ajax Chat est un utilitaire de chat que vous pouvez incorporez à une base de données d’utilisateurs. Ce programme présente de nombreux avantages : l’option d’accès direct et le cross plat-form sont disponible. Pour contrôler ce qui se dit sur... www.commentcamarche.net/telecharger/telecharger-34059777-asp-net-ajax-chat
Télécharger EZ Backup IE ProUE EZ Backup Pro IE est un utilitaire de sauvegarde qui s’adresse spécialement aux habitués d’Internet Explorer. Ce logiciel vous donne la possibilité d’enregistrer certains de vos paramètres de navigations dont vos favoris dans un disque de votre... www.commentcamarche.net/telecharger/telecharger-34059093-ez-backup-ie-pro
AJAX (Asynchronous Javascript And XML)Introduction à AJAX AJAX (Asynchronous Javascript And XML, traduisez Javascript asynchrone et XML) est une méthode de développement web basée sur l'utilisation d'un script Javascript pour effectuer des requêtes web à l'intérieur d'une page web... www.commentcamarche.net/contents/ajax/ajax-intro.php3
AJAX (Asynchronous Javascript And XML)Avantages liés à AJAx Les sites web utilisant AJAX bénéficient des avantages suivants : Une interface réactive car AJAX permet de modifier localement la page web ; Une rapidité d'exécution car seules les données à modifier dans la page sont... www.commentcamarche.net/contents/ajax/ajax-avantages.php3