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

Angular Discussion :

Blocage d’une requête multiorigines (Cross-Origin Request) : Appel d'une API


Sujet :

Angular

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Juin 2020
    Messages : 2
    Par défaut Blocage d’une requête multiorigines (Cross-Origin Request) : Appel d'une API
    Bonjour à tous,
    après maintes recherches et essais infructueux je me tourne vers vous. Voilà j'ai donc une API (.net core) déployé sur un serveur Azure et en UI j'ai du Angular.
    J'essaye donc d'appeler mon api en utilisant HTTPClient. Voici mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    get(){
        this.http.get(this.urlApi + 'Users',  {
          headers: new HttpHeaders({
            'Access-Control-Allow-Origin': '*'
          })
        }).subscribe(res=>{
          console.log(res)
        });
      }
    En appelant la méthode get j'ai cette 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 https://cafeludique.azurewebsites.net/api/Users. Raison : échec de la réponse de pré-vérification des requêtes CORS.
    Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://cafeludique.azurewebsites.net/api/Users. Raison : échec de la requête CORS."

    Comme vous l'avez vu j'ai pourtant bien mit le header Access-Control-Allow-Origin (j'ai aussi essayé en remplaçant * par localhost).

    Je préfère poster ici sur le forum angular, car je ne pense pas que ce sois un problème de mon api. J'ai essayé aussi en utilisant la méthode js fetch (c'est pas forcément le plus propre mais je voulais tout essayer ^^' ) et elle a fonctionné ! la méthode get en tout cas. D'ou le fait que je ne pense pas que cela vienne de mon back.

    Bien sûr je ne suis pas une experte alors je peux me tromper et j'accepte les conseils !

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    ce n'est pas dans l'appel "client" qu'il faut mettre : allow origin
    mais plutôt sur le serveur api

    donc coté serveur, il faut ajouter :

    allow origin * (accepte toutes les requêtes) -> pas recommandé d'un point de vue sécurité (mais pour tester c'est bien)
    allow origin: url_de_app_angular (ainsi le navigateur constate que le serveur accepte les requêtes provenant du client)

    donc voir, coté .net comment faire ça !

  3. #3
    Candidat au Club
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Juin 2020
    Messages : 2
    Par défaut
    Merci ! J'ai résolu mon problème
    Effectivement j'avais déjà essayé de mettre le header dans mon back, mais bon beh j'ai re-essayer et cette fois ci j'ai utilisé la bonne façon ^^'.
    Alors je donne ce que j'ai (même si du coup c'est pas de l'angular) :
    J'avais utilisé dans le Startup.cs AddCors(builder=>{ builder.WithOrigins("http://page-angular.exemple");}) et ça n'avait pas fonctionné (non plus avec *).
    Cette fois j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    AddCors(o => o.AddPolicy("MyPolicy", builder =>
                {
                    builder.AllowAnyOrigin()
                           .AllowAnyMethod()
                           .AllowAnyHeader();
                }));
    et ça fonctionne !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/02/2020, 15h47
  2. Blocage d’une requête multiorigines (Cross-Origin Request)
    Par OZ1977 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/10/2019, 21h25
  3. Blocage d’une requête multiorigines (Cross-Origin Request)*
    Par erichissime dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 19/02/2019, 10h49
  4. Ping Blocage d’une requête multi-origines (Cross-Origin Request)
    Par samtheh dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/02/2017, 14h35
  5. [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

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