Erreur XMLHttpRequest

Résolu
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008 - 21 août 2007 à 17:35
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008 - 21 août 2007 à 20:44
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

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
21 août 2007 à 18:41
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.
3
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
21 août 2007 à 18:04
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;
        }
    }
0
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
21 août 2007 à 18:10
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
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
21 août 2007 à 18:16
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
0

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

Posez votre question
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
21 août 2007 à 20:44
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
0
Rejoignez-nous