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

Django Python Discussion :

acceder à un webservice [Python 3.X]


Sujet :

Django Python

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 489
    Par défaut acceder à un webservice
    Bonjour,

    Je cherche à accéder à un webservice depuis mon application django.
    J'ai suivi les instructions données dans la réponse à ce post


    Dans la variable CORS_ORIGIN_WHITELIST, j'ai mis http://localhost:8000 et http://lesitequihebergelewebservice.fr

    Sur ma page web, j'ai un bouton, quand je clique dessus, ça déclenche une fonction jquery qui doit me renvoyer le résultat de ma requête en json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function get_data(url) {
            fetch(url)
                .then((resp) => resp.json())
                .then(function(data){
                    console.log('Data:', data)
            })
    }
    Malgré cette config, quand je clique sur mon bouton, j'ai toujours l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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://shom-produits.shom.fr/zones_shom/?format=json. Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant. Code d’état : 200.
    Qu'est ce qui cloche? Est ce qu'il manque des déclarations quelque part?

    Merci,
    Nico

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 049
    Par défaut
    Bonjour,

    Citation Envoyé par DiverSIG
    Je cherche à accéder à un webservice depuis mon application django.
    Soyez plus clair, cette phrase n'exprime pas où se trouve le webservice.

    Dans CORS_ORIGIN_WHITELIST, vous devez mettre l'adresse du frontend qui fait les requêtes vers votre backend Django.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 489
    Par défaut
    Bonjour,

    J'ai un site http://www.lesitewebservice.fr et avec ce site j'ai une url http://www.lesitewebservice.fr/mes_data qui me renvoie des données au format json.
    Ce sont ces données que je veux récupérer en faisant ma requête à partir de localhost.

    J'ai installé le package django-cors-headers.
    Dans mon settings.py, j'ai déclaré l'appli cors_headers dans INSTALLED_APPS, 'corsheaders.middleware.CorsMiddleware', dans MIDDLEWARE, ainsi que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CORS_ORIGIN_ALLOW_ALL = False
    CORS_ALLOWED_ORIGIN = [
        'http://127.0.0.1:8000',
        'http://localhost:8000',
    ]
    (j'ai vu dans un post que CORS_ORIGIN_WHITELIST était deprecated, et qu'il fallait utiliser CORS_ALLOWED_ORIGIN)

    Nico

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 049
    Par défaut
    En faisant une requête simple depuis un script python avec le module requests par exemple, vous avez testé si la même erreur se produisait ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 489
    Par défaut
    avec requests ça marche impecable.

    Merci

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

Discussions similaires

  1. accéder au webServices
    Par nightcyborg dans le forum Microsoft Dynamics CRM
    Réponses: 2
    Dernier message: 15/04/2010, 15h10
  2. Réponses: 1
    Dernier message: 10/06/2008, 23h30
  3. Accéder via l'URL à une méthode d'un WebService
    Par LeLapinVengeur dans le forum Services Web
    Réponses: 3
    Dernier message: 15/04/2008, 09h11
  4. [C#]Acceder à une methode d'un objet d'un webservice
    Par Ezekhiel dans le forum Services Web
    Réponses: 1
    Dernier message: 18/12/2006, 23h37

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