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

ASP.NET Discussion :

Problème de CORS


Sujet :

ASP.NET

  1. #1
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 968
    Par défaut Problème de CORS
    Bonjour,

    Je pose ici car ça ressemble à un problème de config.
    Je dois effectuer un mini moteur de recherche sur les documentations swagger de nos API.
    Ces documentations sont réparties sur plusieurs applications Web disposés sur le même site sur lesquels je peux potentiellement effectuer des changements
    L'écran de recherche fera partie d'un autre site sur un autre serveur sur lequel je n'ai pas la main et sur lequel je dispose de très peu d'informations

    J'ai donc une structure comme celle-ci :
    Serveur Doc :
    Site Doc
    Wep App Doc 1
    Web App Doc 2
    ...
    Web App Doc n
    Serveur XXX :
    Site Publicité/Annonces


    Mon idée était d'aller fouiller dans le XML sur lequel se base swagger pour construire sa page et qui est déjà existant dans le répertoire App_Data de chaque Web App de doc.
    J'ai installé les web app de doc en local sur mon poste pour faire mon dev (sur localhost:8081) et construit une page Web (localhost:26520, ou le port est généré par VS2015) qui va lire
    J'ai commencé par autorisé l'accès au répertoire App_Data qui ne contient que ce fichier XML
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        <security>
          <requestFiltering>
            <hiddenSegments>
              <remove segment="App_Data" />
            </hiddenSegments>
          </requestFiltering>
        </security>

    J'ai pu accéder à la ressource en tapant directement son emplacement.
    Maintenant je souhaite lire son contenu via appel jQuery et c'est là que je suis confronté au problème de CORS.
    J'ai beau modifier la config, rien n'y fait :
    J'ai actuellement une config comme celle-ci :
    Code XML : 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
    19
    20
     
      <system.webServer>
        <httpProtocol>
          <customHeaders>
            <add name="Access-Control-Allow-Methods" value="GET" />
            <add name="Access-Control-Allow-Headers" value="*" />
            <add name="Access-Control-Allow-Origin" value="*" />
          </customHeaders>
        </httpProtocol>
        <staticContent>
          <mimeMap fileExtension="json" mimeType="application/json" />
        </staticContent>
        <security>
          <requestFiltering>
            <hiddenSegments>
              <remove segment="App_Data" />
            </hiddenSegments>
          </requestFiltering>
        </security>
      </system.webServer>

    et l'appel jquery :
    Code JavaScript : 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
          $.ajax(
                    {
                        type: 'GET',
                        url: 'http://localhost:8081/Comptabilite/App_Data/Comptabilite.XML',
                        dataType: 'xml',
                        headers: {
                            'Access-Control-Allow-Origin': '*',
                            'Access-Control-Allow-headers': '*',
                            'Content-Type': 'text/plain'
                        }
                    }).done(function (xml) {
     
                        alert('OK');
                        $('body').append($(xml).find('summary').first().text());
                    }).fail(function (jqXHR)
                    {
                        alert('KO');
                    });

    J'obtiens le message KO.

    Edit :
    Je testais dans Firefox.
    Mais ça semble fonctionner dans Chrome, IE11 et Edge

    Que faut-il que je modifie pour que ça fonctionne de partout ?
    Merci.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 968
    Par défaut
    C'est bon, j'ai la réponse :
    Il faut configurer le Allow-Headers de la manière suivante :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <add name="Access-Control-Allow-Headers" value="access-control-allow-headers, access-control-allow-origin" />

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/12/2016, 10h27
  2. problème corsé? A vous de me dire.
    Par Merlin3d19 dans le forum Android
    Réponses: 0
    Dernier message: 30/11/2015, 21h57
  3. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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