Erreur XMLHttpRequest [Résolu]

Signaler
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008
-
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008
-
Bonjours, j'ai une erreur sur XMLHttpRequest,

" uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open "

Voici mon code :

    function test ()
    {
        var adresse;
        adresse = document.getElementById('select_adress').value;
        if(document.all) {
            var obj1 = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else {
            var obj1 = new XMLHttpRequest();
        }
        obj1.open("POST", "http://maps.google.fr/maps/geo?q="+adresse+"&output=json&key=ABQIAAAADAAZbbeDBAz-gsvzpZ165BRi_j0U6kJrkFvY4-OX2XYmEAa76BQuS3HAqrzpuVhW0k-qGlHCJhWsgg");
        obj1.onreadystatechange = function() {            if (obj1.readyState 4 && obj.status 200)
            {
                var jsonData = eval("(" + doc + ")");
                alert(jsonData.coordinates);
            }
        }
        obj1.setRequestHeader('Content-Type','application/x-www-form-urlencoded');   
        obj1.send(data);
    }

J'ai déja pas mal trouvé d'info sur le net mais rien qui ne résoud mon prodlème

Avez vous déja rencontré ce problème ?

----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler

5 réponses

Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
13
la méthode open existe bien, mais comme tu utilises toujours le même composant (Microsoft.XMLHTTP) pour créer ton objet, il est possible que tu sois sur un navigateur où c'est l'autre (Msxml2.XMLHTTP) composant qui est activé.Je crois que le second est pour ie7 est le premier pour les précedents ou l'inverse je sais plus.
D'autre part, tu sembles parler de documents externes au domaine du serveur initial : Les cross domain calls sont interdits avec javascript.
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
13
document.all n'est pas fiable pour savoir si ton script tourne sous ie. Et en plus l'instantiation d'un XMLHttpRequest n'est pas la même selon les versions du logiciel.
Essayes avec quelquechose comme :

    // ie
    try {
        this.xhr = new ActiveXObject("Msxml2.XMLHTTP");
        this.ie = true;
    } catch (e) {
        try {
            this.xhr = new ActiveXObject("Microsoft.XMLHTTP");
            this.ie = true;
        } catch (E) {
            this.xhr = false;
        }
    }
    @end @*/
   
    // Mozilla, Safari, Konqueror, Opera
    if (!this.xhr && typeof XMLHttpRequest != 'undefined') {
        try {
            this.xhr = new XMLHttpRequest();
        } catch (e) {
            this.xhr = false;
        }
    }
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
13
d'autre part l'api de google maps possède ses propres méthodes pour faire de l'ajax : http://www.google.com/apis/maps/documentation/#XML_and_RPC_overview
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

Je sais j'ai déja essayé cette fonction de google map, lorsque je charge un doc sur le serveur ca marche, mais lorsque je fais appel à un doc externe, ca ne marche pas.
Ca me fais la même chose pour XMLHttpRequest...

----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

Je tourne sous Firefox,

Mais si tu me dis que les cross domain calls sont interdits avec javascript, hé bien c'est la raison pour laquelle mon script ne
marche pas alors, puisque j'essai d'appeler la page http://maps.google.fr/maps/geo?q=

A ce moment la je vais plutôt appeler une page sur mon serveur qui se connectera à la page distante en php...

Merci ++

----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler