Retour au site
Connexion : S'inscrire

3 messages
Filtrer ok

Problème de cache ie7: ajax, xmlhttprequest

Un expert informatique vous aide immédiatement par téléphone.
Bonjour, voila je veux tester si un fichier sur le disque dur exist. Je fait donc ceci:
Code :
function fichierExiste(url){
 var httpRequest = false;
 if (window.XMLHttpRequest) { // Mozilla, [url=http://www.clubic.com/telecharger-fiche38283-safari.html]Safari[/url],...
 httpRequest = new XMLHttpRequest();
 }else if (window.ActiveXObject) { // IE
 try {
 httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
 }catch (e) {
 try {
 httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
 }catch (e) {}
 }
 }
 if (!httpRequest) {
 alert('Abandon :( Impossible de créer une instance XMLHTTP');
 return false;
 }
 httpRequest.open("GET", url, false);
 httpRequest.setRequestHeader("Cache-Control","no-cache");
 httpRequest.send(null);
 if(httpRequest.status == 200) { //Le fichier existe
 return true;
 }else{
 return false;
 }
}


Donc sur Firefox et IE6*, ca fonctionne mais malheureusement sous IE7, ca bug car il utilise le cache malgré le setRequestHeader. Donc il suffit que IE7 detecte une fois le fichier pour le detecter pour toujours, et meme le refresh, F5 et meme redemarrer le navigateur n'y fait rien...

Donc si qq'un a une idée, je suis preneur...

Merci
Edité le 18/01/2008 à 07:39
 
 
En général, ça se fait côté serveur ça.

Là, tu change la Request = requête du client.

(je sais, j'ai eu les mêmes merdes, sous IE6)
Modérateur Logiciel - Programmation
 
 
Bon, on dit que la nuit porte conseil, ce fut le cas, j'ai trouvé !

Je ne savais pas mais il suffisait de changer de méthode d'envoi. Contrairement à GET qui utilise le cache, POST ne l'utilise pas. Donc il a suffit que je remplace la ligne httpRequest.open("GET", url, false); par httpRequest.open("POST", url, false); et la problème a été résolu..

Voila, peu etre que ca servira a d'autre
Edité le 18/01/2008 à 07:40
 
 

|
 
3 messages
Un expert informatique vous aide immédiatement par téléphone.
Filtrer ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires: