IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Cross request en local


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Cross request en local
    Bonjour,

    J'ai besoin d'écrire un script qui parse une liste d'adresse et les affiche sur Google Map. Direction javascript et l'api Google Map, j'arrive à réaliser le geocoding (obtenir les coordonnées des adresses) et à afficher le marker correspondant sur la map, mais un problème : je n'arrive pas à lire mon fichier xml en entrée à cause d'un problème de Cross request.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    var geocoder;
    var map;
     
    function initialize() {
     
        geocoder = new google.maps.Geocoder();
     
        var paris = new google.maps.LatLng(48.8566667, 2.3509871);
     
        var mapOptions = {
            zoom: 8,
            center: paris,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            }
     
        /* Chargement de la carte  */
        map = new google.maps.Map(document.getElementById("map"), mapOptions);
    }
     
    /* Fonction de geocodage */
     
    function codeAddressXml () {
        downloadUrl('test.xml', function(data) {
            var markers = data.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
                var address = markers[i].getAttribute("adresse");
                geocoder.geocode( { 'address' : address}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        map.setCenter(results[0].geometry.location);
                        var marker = new google.maps.Marker (
                        {
                            map : map,
                            position : results[0].geometry.location
                        })
                    } else {
                        alert("Le geocodage pour" + address + "a echoué. " + status)
                    }
                });
            }
        });
    }
    Et lors de l’exécution Chrome me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XMLHttpRequest cannot load file:///D:/Bureau/api_google_map/test.xml. Cross origin requests are only supported for HTTP.
    Je me suis renseigné au niveau des Cross Requests, mais étant donné que le fichier est sur ma machine les résultats sont différents des miens.
    Comment parser ce XML en contournant cette restriction ?

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    chrome n'aime pas le protocole file://, passe par un serveur local, ou teste en ligne, ou change de navigateur de test.

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Ce n'est pas un problème lié à Chrome, il y a bien plus de sécurité avec le protocole "file://" pour empêcher les requêtes externes lors de la consultation offline de pages web.

    Utilise un serveur local léger comme un Apache, un Jetty ou encore WAMP.
    One Web to rule them all

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponse, je vais essayer cela.

Discussions similaires

  1. Cross origin requests are only supported for HTTP
    Par smfrd8 dans le forum jQuery
    Réponses: 5
    Dernier message: 14/03/2014, 15h27
  2. [Dojo] Cross origin requests are only supported for HTTP
    Par fatimaezzahra125 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 02/01/2014, 18h08
  3. [AJAX] requête: Cross-site HTTP requests
    Par Aquaa dans le forum AJAX
    Réponses: 1
    Dernier message: 02/03/2010, 10h45
  4. Réponses: 4
    Dernier message: 04/01/2010, 19h14
  5. requête: Cross-site HTTP requests
    Par Max_B dans le forum IGN API Géoportail
    Réponses: 10
    Dernier message: 16/06/2009, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo