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

AJAX Discussion :

Erreur CORS requête web xmlhttp cross domain


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Homme Profil pro
    technicien eau potable
    Inscrit en
    Février 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : technicien eau potable
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Erreur CORS requête web xmlhttp cross domain
    Bonjour,
    J'essaie d'envoyer des données vers un serveur via une api fournissant l'url.
    Quand je colle l'url rempli avec les données et le jeton d'authentification, les données sont bien enregistrées.

    Mais quand je veux envoyer ces données via un objet xmlhttp, j'ai une erreur :
    l'en-tête CORS « Access-Control-Allow-Origin » est manquant.
    échec de la requête CORS.

    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
     
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          //  var myArr = JSON.parse(xmlhttp.responseText);
            console.log('envoie réussi');
        }
        else {
          console.log('erreur envoie');
        }
    };
     
    xmlhttp.open("POST", url, true);
    xmlhttp.setRequestHeader("Content-Type", "text/xml");
    //xmlhttp.setRequestHeader("Access-Control-Allow-Origin", "*");
    xmlhttp.send();
    J'ai également essayé avec jquey, mais j'ai la même erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $.ajax(url, {
        type: 'POST',
        dataType: 'json',
        success: function(data) {
     
        },
        error: function(xhr, sts, err) {
            alert('Erreur !!');
        }
    });
    Est ce que quelqu'un aurait la solution à mon problème?
    Merci d'avance.

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    un entête Access-Control-Allow-Origin sert à indiquer au navigateurs quel domaine est autorisé à faire des requête sur le serveur. il s'agit d'un entête envoyé par le serveur et non par le client.
    Si le serveur est Apache, vous pouvez essayez la ligne suivante dans un fichier .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Header set Access-Control-Allow-Origin http://domaine.com
    pour plus de détails vous pouvez regarder là :
    https://developer.mozilla.org/fr/doc...s_control_CORS

  3. #3
    Membre à l'essai
    Homme Profil pro
    technicien eau potable
    Inscrit en
    Février 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : technicien eau potable
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Merci pour ces informations. Le problème c'est que je n'ai aucun accès au serveur vers lequel j'envoie cette requête.

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Vous ne pourrez pas faire la requête par le navigateur dans ce cas. Vous pouvez essayer de passer par le serveur en PHP par exemple.

  5. #5
    Membre à l'essai
    Homme Profil pro
    technicien eau potable
    Inscrit en
    Février 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : technicien eau potable
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    j'ai suivi votre conseil, en passant par le serveur avec cURL et PHP ça marche. Merci!

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Bac +2
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Bac +2

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    J'aimerai savoir de quel manière tu as réussi à régler ton problême korwin, à l'aide du PHP.

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    cette technique peut se faire avec par exemple un fichier PHP sur votre site qui contient cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $url = "https:/serveur/page";
    $contenu = file_get_contents($url);
     
    echo $url;
    et ensuite en JavaScript vous lisez le retour de script.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Bac +2
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Bac +2

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci de votre réponse,

    je suis novice en JS et encore plus en PHP,
    j'aimerai que mon code JS puisse recevoir les données que contient : EX_GeographicBoundingBox
    provenant de : http://localhost:8080/geoserver/wms?...ETCAPABILITIES (Serveur dont je n'ai pas accès).

    J'ai essayer d'afficher le retour du script avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            console.log(    
            <?php
                $url = "http://localhost:8080/geoserver/wms?REQUEST=GETCAPABILITIES";
                $contenu = file_get_contents($url);
     
                echo $url;
            ?>
            );
    mais sans succès,

    Le message d'erreur :
    "Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://localhost:8080/geoserver/test/wms. Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant."

    Est toujours présent.

    Merci d'avance pour les réponses et solutions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Silverlight 4 et Web Service Cross-Domaine
    Par Leskate dans le forum Silverlight
    Réponses: 2
    Dernier message: 09/02/2012, 15h58
  2. Requête vers WebService asp: cross domain exception
    Par Strange-Days dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/01/2012, 10h41
  3. Cross-Domain sur un sous-domaine (erreur 302)
    Par Murmured dans le forum jQuery
    Réponses: 2
    Dernier message: 07/02/2011, 23h33
  4. Erreur de cross domain et de policy SOAP
    Par jubourbon dans le forum Services Web
    Réponses: 0
    Dernier message: 28/06/2010, 19h42
  5. Interrompre une requête Cross-Domain
    Par Mistic100 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 09/02/2010, 19h04

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