Ajax.Request et MSIE

Résolu
rivarol89 Messages postés 19 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 22 avril 2010 - 18 juin 2009 à 07:30
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 19 juin 2009 à 16:38
Salut j'ai un probleme qui commence vraiment à m'ennuyer, voici un bout de code tout con :

-----------JS-----------------------------

function testRequest() {
    var req = new Ajax.Request('texte.txt',
  {
    method:"get",
    onSuccess:myfunction,
    onFailure: function(){ alert('Something went wrong...') }
  });
}

function myfunction(req) {
    alert(req.responseText);
}

-------------------------------------------------

En gros je récupère ce qu'il y a dans mon fichier texte
sur le serveur.

------------HTML---------------------------------

<li>caca</li>

-------------------------------------------------

le HTML n'a pas vraiment d'importance ici, mais
je le met quand même.

Bref le problème est le suivant :

Tout fonctionne a merveille sous firefox.
Par contre sur IE7, pas moyen ! NADA...

aucun message d'erreur, aucun "alert"...

J'ai recherché sur google, mais je n'ai trouvé aucune explication...
Est ce vraiment une incompatibilité ?
J'ai testé des exemple de ce script sur d'autre sites
avec IE et tout s'est passé sans problème... :-/

Un peu d'aide ne serait pas de refus.

Merci d'avance.

Ps : quel est le tag pour les codes source ? ^^'

20 réponses

Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
19 juin 2009 à 03:22
C'est en local ou pas ? Les navigateurs gèrent les permissions vers les fichiers un peu différemment. Sur IE, il se peut qu'il bloque carrément la requête vu que c'est en local.
3
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
19 juin 2009 à 14:42
Oui, IE bloque les fichiers en locaux et retourne l'erreur : "Accès refusée". Peut-être devrait tu le mettre sur un serveur et la le retester ?
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
18 juin 2009 à 12:57
Bonjour,

tu utilises une bibliothèque de fonctions,
    normalement ça évite justement les problèmes de compatibilité !
mais bon, je t'avoue penser que ces bibliothèques devraient
    être réservées à quelques experts ( dont je ne suis pas ! )

maintenant, je n'ai peut-être pas bien compris cette phrase :
    >>>J'ai testé des exemple de ce script sur d'autre sites
    >>>avec IE et tout s'est passé sans problème... :-/
    c'est à dire que le même script fonctionne sur certains micros, pas sur d'autres ?
    dans ce cas : pas la même version, pas le même paramétrage ... !!!!

mais bon, IE comme les autres signale les erreurs, s'il y en a.

Navigateurs |Quelques Explications |----
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger mon Site] [M'écrire] Bul
0
rivarol89 Messages postés 19 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 22 avril 2010
19 juin 2009 à 03:09
Lol oui ne t'inquiette pas j'ai vu ton super débat sur firefox et IE dans un autre sujet, et j'ai essayé de chercher les erreurs,
Le fait est que sous firefox, ca marche niquel, je recois mon alert et tout ce qui est sensé s'y trouver.

Sur IE il ne se passe absolument rien, aucun message d'erreur etc...

J'inclus dans l'entête prototype et scriptaculous, scriptaculous marche parfaitement avec Firefox et IE (je parle des effets graphiques).

Ce code se trouve dans un fichier nomé 'personal_lib.js' que j'inclus aussi dans l'entête.

-----------JS-----------------------------

function testRequest() {
    var req = new Ajax.Request('texte.txt',
  {
    method:"get",
    onSuccess:myfunction,
    onFailure: function(){ alert('Something went wrong...') }
  });
}

function myfunction(req) {
    alert(req.responseText);
}

-----------------------------------------

maintenant, je n'ai peut-être pas bien compris cette phrase :
    >>>J'ai testé des exemple de ce script sur d'autre sites
    >>>avec IE et tout s'est passé sans problème... :-/

Simple ! regarde : exemple AJAX

C'est juste un exemple prit sur developpez qui marche très bien.

Toi personnellement si tu code avec prototype, comment procède tu ? je veux dire
j'ai jamais vraiment apris le javascript, mais comme ca resemble a plein d'autre langages
dans la synthaxe, ca ne me pause aucun problème.

Y a t'il des ordres d'inclusion de JS a respecter ?
peut-on utiliser Ajax.Request à tors et a travers ? ou alors il y a des parametrages judicieux pour chaques explorateur ?
Bref le domaine du web est trop vaste, quand t'en a fini avec un langage, ya un nouveau truc qui aparait.

Sur ce Bonsoir
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
19 juin 2009 à 09:04
tu ne réponds pas à mes questions.
tu me donnes un lien, où ça fonctionne ? comme ça devrait
toujours fonctionner, ça ne sert pas à grand chose.

je demandais : est-ce que ce que tu utilises fonctionne
sur certains micros ou plante toujours ?
si ça marche sur certains micros : paramétrages IE
à regarder là où ça plante
sinon, c'est une mauvaise utilisation de la bibliothèque.
( mais en général, il y a des messages,
il faut activer le deboggage au moins )

>>Toi personnellement si tu code avec prototype, comment procède tu ?
je n'utilise aucune bibliothèques de fonctions
bien trop lourdes à mon goût et bien trop compliquées pour moi

>>j'ai jamais vraiment appris le javascript,
ces bibliothèques ne sont que des fonctions javascript
à mon humble avis, avant d'utiliser, il faut connaître
un minimum le javascript

>>comme ça ressemble a plein d'autre langages
on pourrait PRESQUE dire cela.
>>ça ne me pause aucun problème.
ben si.. la preuve !
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
19 juin 2009 à 14:22
J'aurais tendance à rejoindre Arto si c'est en local c'est normal la gestion des droits d'accès aux fichiers locaux a été renforcée dans IE7... j'ai eu le pb y a pas très longtemps avec l'appli d'un client... .. .

Sinon vérifies le path du fichier demandé peut y avoir des soucis si tu utilise des liens relatif ou une balise IE est assez chiant avec ça

@ tchaOo°

l'homme est un loup pour l'homme... .. .
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
19 juin 2009 à 14:55
>>Oui, IE bloque les fichiers en locaux et retourne l'erreur : "Accès refusée".
depuis quand ????  perso je n'ai aucun souci de ce genre !!!
je pense que vous confondez, et que le problème est ailleurs.
c'est vrai qu'avec IE, on donne plus ou moins d'autorisations,
en local, sur la toile, sur des sites sensibles ou de confiance !
mais en local, c'est par défaut plus "ouvert" que sur la toile, sauf si on modifie
et ce ne sera pas "accès refusé", message que ne semble pas avoir rivarol.
la question essentielle :
est-ce que ce que ça fonctionne 
sur certains micros/sites ou ça plante toujours ?
( il me semblait avoir lu, ça baigne chez certains, pas chez tous ?
J'ai testé des exemple de ce script sur d'autre sites
avec IE et tout s'est passé sans problème
)
0
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
19 juin 2009 à 15:00
Bonjour,

Et bien chaque fois que je teste l'xmlHttpRequest sur IE sur mes différents machines (XP et Vista), il me les bloque chaque fois en me renvoyant l'erreur. Et c'est sûr que si son script ne fonctionne pas, il n'aura pas l'erreur qui elle n'arrive que si le script fonctionne ;)
0
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
19 juin 2009 à 15:03
A au fait, tu devrais changer ton tableau pour Safari :

Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
<true/>

serait plus :

Développement / Afficher la console d'erreur
° Aller dans le menu Édition > Préférences > Avancé et cocher : afficher le menu développement dans la barre des menus
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
19 juin 2009 à 15:10
>>chaque fois que je teste l'xmlHttpRequest sur IE sur mes
différents machines (XP et Vista),
>>il me les bloque chaque fois en me
renvoyant l'erreur
c'est parce que tu fais une erreur justement !
donnes nous donc un exemple ( un extrait, le minimum ! )
d'un truc qui planterait en local et pas sur un site,
et ce, uniquement avec IE !
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
19 juin 2009 à 15:12
sans bibliothèques de fonctions !
sinon, c'est parce qu'elles ne sont pas utilisées correctement
( mais site ou local, ce sera pareil ! )
0
rivarol89 Messages postés 19 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 22 avril 2010
19 juin 2009 à 15:33
Ouai, pour l'instant je teste en local (comme il n'y a pas de php c'est vraiment directement sur le disque dur)
Je vais tenter de passer à travers wamp pour voir, je trouve ca bizare car je suis sûr qu'il n'y a aucune erreur
importante dans le code. Sinon je ne vois pas pourquoi ca fonctionne sur firefox (quoi que les différents navigateurs
nous reservent bien des surprises).

Sinon Bul3, toi tu n'utilise aucun framework ? oO prototype et scriptaculous te feraient gagner beaucoup de temps,
en plus si tu est déjà aisé avec l'objet xmlHttpRequest ca ne sera que du bonheur non ?

Je vous tien au courant.

@+
0
rivarol89 Messages postés 19 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 22 avril 2010
19 juin 2009 à 15:45
OK no problemo !
Arto_8000 avait raison, en effet j'ai tout foutu sur wamp, et là, par magie, ca marche...

ralala....

bon merci à tous pour vos conseils quand même ^^'
0
rivarol89 Messages postés 19 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 22 avril 2010
19 juin 2009 à 15:47
Reste à savoir pourquoi ?
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
19 juin 2009 à 15:56
>>pour l'instant je teste en local (comme il n'y a pas de php c'est vraiment directement
>>sur le disque dur) Je vais tenter de passer à travers wamp pour voir,
alors là ??? je ne te suis plus du tout, du tout !?!?!??!
tu testais ajax sans "simulation serveur" ?
( apache et tout le toutim , wamp ou easyphp ou autre ) ?

>>toi tu n'utilise aucun framework ? oO prototype et scriptaculous te feraient gagner beaucoup de temps,
pas au chargement toujours !
plus de 100k pour quelques effets "surfaits"... non merci

>>en plus si tu est déjà aisé avec l'objet xmlHttpRequest ca ne sera que du bonheur non ?
bas... ajax c'est 10 lignes coté client, pas de quoi en faire une montagne non plus !
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
19 juin 2009 à 16:09
je viens seulement de comprendre !!!!!
vous utilisez ajax pour lire un fichier texte !
alors, oui ! avec xmlhttprequest normal, ie n'aime pas
   trop ça directement sans passer par wamp ou autres !
j'étais loin du problème posé moi !
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
19 juin 2009 à 16:13
on doit bien pouvoir palier ( peut-être ? ) à ça ( va savoir ? )
sans utiliser un "simulateur de sites en local"
faut creuser un peu, probablement,
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
19 juin 2009 à 16:24
petits essais avec

new ActiveXObject("Microsoft.XMLHTTP");
au lieu de
new XMLHttpRequest();

et ça semble baigner.
donc ça doit dépendre du test pour ajax :
ne pas oublier que IE accepte XMLHttpRequest()
mais ne semble pas apprécier de lire ( enfin, sans rien faire d'autres ? )
un fichier en local pur.
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
19 juin 2009 à 16:36
>> depuis quand ????

Je l'ai dis plus haut la politique de gestion d'accès des fichiers locaux à été modifiée dans IE7... je parle pas de local http mais d'accès local via le système de fichier... j'ai pas vraiment d'explication j'ai eu le pb au boulot sur une des appli (interne donc accès local au fichiers) que j'ai développé suite à migration du parc vers IE7... j'ai galéré à trouver... c'est pas directement lié au xmlhttp mais plutot à prototype (on utilise une version hybride de prototype)... le seul contournement que j'ai trouvé, pour l'instant, c'est de faire ma requête à "la mano" sans Ajax.Request pour IE mais j'ai pas encore mis le doigt sur la cause du comment du pourquoi... .. .

@ tchaOo°

l'homme est un loup pour l'homme... .. .
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
19 juin 2009 à 16:38
Ouep c'est ça le truc... prototype instancie une XMLHttpRequest et c'est ça qui bloque faut passer par la version ActivX... .. .

@ tchaOo°

l'homme est un loup pour l'homme... .. .
0
Rejoignez-nous