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

Apache Discussion :

Pas de retour lors d'une requête GET


Sujet :

Apache

  1. #1
    Membre à l'essai
    Homme Profil pro
    geomaticien
    Inscrit en
    Juillet 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : geomaticien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Pas de retour lors d'une requête GET
    Bonjour,

    J'ai écris un script en javascript pour envoyer une requette GET à mon serveur :
    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
    function wfsGeoJson(url,callback){
        var req=new XMLHttpRequest();
        req.open("GET",url);
        req.addEventListener("load",function (){
            if (req.status <=200 && req.status < 400){
                // Appelle la fonction callback en lui passant la réponse de la requête
                var wfst=req.responseText;
                var wfso=JSON.parse(wfst);
                callback(wfso);
            } else {
                console.error(req.status + " " + req.statusText + " " + url);
            }
        });
        req.addEventListener("error", function () {
            console.error("Erreur réseau avec l'URL " + url);
        });
        req.send(null);    
    }
    L'URL que j'envoie est de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.geomajic.com/qgis/qgis_mapserv.fcgi?map=/var/www/html/cartes/randonnee/carte.qgs&TYPENAME=rando&SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&OUTPUTFORMAT=GeoJSON
    Si vous saisissez cette URL dans votre navigateur, vous aurez le retour qu'il faut, un fichier au format GeoJSON.
    La page index.html du site www.geomajic.com lance ce script avec l'URL voulu et le retour est un objet dont l'attribut reponseText contient le même fichier GeoJSON que ci-dessus.
    Par contre, quand j'ouvre cette page index.html à partir de l'adresse ip de ce siste (137.74.41.66), l'objet req est bien créé mais en retour, il est <not available>.

    Est-ce que quelqu'un pourrait me dire l'origine de cette situation et comment y remedier?

    Par avance merci.

    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 377
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 377
    Points : 15 729
    Points
    15 729
    Par défaut
    regardez l'erreur indiquée dans la console de développement de votre navigateur

  3. #3
    Membre à l'essai
    Homme Profil pro
    geomaticien
    Inscrit en
    Juillet 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : geomaticien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bonjour
    Merci d'avoir pris le temps de me répondre.
    Avec Chrome, j'ai deux messages dans la console de développement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XMLHttpRequest cannot load http://www.geomajic.com/qgis/qgis_mapserv.fcgi?map=/var/www/html/cartes/ran…ME=rando&SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&OUTPUTFORMAT=GeoJSON. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://137.74.41.66' is therefore not allowed access.
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur réseau avec l'URL http://www.geomajic.com/qgis/qgis_mapserv.fcgi?map=/var/www/html/cartes/ran…ME=rando&SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&OUTPUTFORMAT=GeoJSON
    Avec Firefox, je n'ai que ce second message qui correspond à la ligne n°23
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.error("Erreur réseau avec l'URL " + url);
    de mon code.

    Quand je regarde le contenu de mon objet req, il est créé avant la ligne 9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        if (window.XMLHttpRequest){
            req=new XMLHttpRequest();
        }
        else {
            req=new ActiveXObject("Microsoft.XMLHTTP");
        }
    et il a pour valeur :
    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
    req: XMLHttpRequest
    onabort:null
    onerror:null
    onload:null
    onloadend:null
    onloadstart:null
    onprogress:null
    onreadystatechange:null
    ontimeout:null
    readyState:0
    response:""
    responseText:""
    responseType:""
    responseURL:""
    responseXML:null
    status:0
    statusText:""
    timeout:0
    Le retour de l'évennement est toujours en erreur et donc c'est la ligne 22
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    req.addEventListener("error", function () {
            console.error("Erreur réseau avec l'URL " + url);
        });
    qui s'exécute.
    La valeur de l'objet req est : Je ne sais si je peux fournir plus d'information sur l'erreur que je rencontre.

    Cordialement

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 377
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 377
    Points : 15 729
    Points
    15 729
    Par défaut
    voilà le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://137.74.41.66' is therefore not allowed access.
    pour que le code JavaScript à l'URL "http://137.74.41.66/..." fonctionne, il faudrait que le script envoie le bon entête pour l'autoriser. regardez là :
    https://developer.mozilla.org/fr/doc...s_control_CORS

    pour votre cas, le plus simple serait peut-être de modifier l'URL d'appel en mettant 'http://137.74.41.66/qgis/qgis_mapserv.fcgi?...'

  5. #5
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 790
    Points : 3 056
    Points
    3 056
    Par défaut
    Si le serveur qui doit répondre à la requête Ajax est le tien, tu pourrais ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
    </IfModule>
    dans le fichier .htaccess.

    Si cela fonctionne ainsi, tu pourrais mieux définir la règle pour n'autoriser que tes appels et pas ceux du monde entier.

Discussions similaires

  1. [MySQL] Appliquer une fonction sur un champ lors d'une requête
    Par Jérémy197 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/08/2006, 13h29
  2. Types de données incompatibles lors d'une requête sous access
    Par RodEpsi dans le forum Bases de données
    Réponses: 32
    Dernier message: 21/07/2006, 15h51
  3. Erreur lors d'une requête d'ajout
    Par olivia.of dans le forum Access
    Réponses: 13
    Dernier message: 14/02/2006, 12h18
  4. [MySQL] Perte d'information lors d'une requête de visualisation
    Par niccco dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/10/2005, 13h46
  5. Mauvais noms de colonnes lors d'une requête
    Par nmathon dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/04/2004, 07h27

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