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

jQuery Discussion :

Contourner le Same Origin Policy


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Par défaut Contourner le Same Origin Policy
    Bonjour,

    Je viens de passer ma matinée à chercher sur internet comment résoudre mon problème et, bien que plein de gens rencontrent cette même difficulté, je n'ai pas réussi à trouver une solution fonctionnelle

    Je souhaite faire de requêtes Ajax sur deux API REST différente. J'ai donc deux fonctions contenant ces appels :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var query = "http://api.foodessentials.com/ingredientsearch?q=monmessage&sid=6982c2b5-79ff-4d55-929c-b303a18d1e87&n=10&s=1&f=json&api_key=maclé";
    $.ajax({
        url: query,
        success: function(_data) {
            console.log(_data);
        },
        error: function(err) {
            console.log('LabelApi est down : ' + err.statusText + ' ' + err.status);
        }
    });
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     var query = "http://api.nal.usda.gov/ndb/search/?format=json&q=monmessage&sort=n&max=25&offset=0&api_key=maclé";
        $.ajax({
            url: query,
            success: function(_data) {
                 //traitement
            },
            error: function(err) {
                console.log('USDA est down ' + err.statusText + ' ' + err.status);
            }
    });
    Évidement, j'obtiens l'erreur : Blocage d'une requête multi-origines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://api.foodessentials.com/ingredientsearch?... Raison : l'en-tête CORS « Access-Control-Allow-Origin » est manquant.

    Pourtant, de temps en temps, la seconde requête passe et me renvois le bon résultat...

    J'ai essayé milles façon (CORS, &.getJson, ...) sans succès, mais peut être m'y suis-je mal prise.

    Merci d'avance pour votre aide, n'hésitez pas à demander plus de code si nécessaire !!

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    C'est justement la raison d'être de la limitation SOP, limiter les accès en ajax !

    Si le site distant n'autorise pas les requêtes cross domain c'est sans doute qu'ils ont une bonne raison...
    Maintenant un site qui propose une API mais qui bloque le cross domain ...

    C'est le site distant qui à la main pour accepter ou refuser les accès hors domaine ...

    Ceci étant que tu appelles directement l'url [code]http://api.foodessentials.com/ingredientsearch?q=monmessage&sid=6982c2b5-79ff-4d55-929c-b303a18d1e87&n=10&s=1&f=json&api_key=maclé [\code] tu dois avoir une réponse ...
    Encore faut il avoir la bonne clef ...
    SI ça ne passe pas en ajax malgré la clef tu peux toujours curler ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. UI Autocomplete protocole "www"..same origin policy
    Par Anne1969 dans le forum jQuery
    Réponses: 12
    Dernier message: 07/11/2012, 14h57
  2. Formulaire et Same origin Policy
    Par LeCogiteur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/02/2009, 14h15
  3. [JSP] récupération de l'origine du submit
    Par Jovial dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/04/2004, 09h40
  4. Récupérer la table d'origine du champs
    Par adelavarenne dans le forum Bases de données
    Réponses: 7
    Dernier message: 02/04/2004, 15h38
  5. Contourner un obstacle 2D
    Par coco dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 20/11/2003, 08h51

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