2017-10-16 4 views
1

Je rencontre des problèmes avec CORS. J'ai des appels AJAX d'un SPA dans le domaine A vers une API REST dans le domaine C (mine aussi) via le domaine B que j'ai configuré comme proxy inverse et équilibreur de charge. Les trois sont déployés sur Azure Web Apps.Problème CORS avec AJAX et Azure Reverse Proxy

Les appels de A à C fonctionnent directement sans problème. Mais les appels de A à C via B ne fonctionneront pas.

CORS est autorisé sur B et C à partir de A en utilisant le portail. CORS est autorisé sur C depuis B en utilisant le portail.

web.config du serveur API C a les éléments suivants:

<httpProtocol> 
     <customHeaders> 
      <add name="Access-Control-Allow-Origin" value="*" /> 
      <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
      <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS" /> 
     </customHeaders> 
    </httpProtocol> 

mais je reçois l'erreur suivante:

Response to preflight request doesn't pass access control check: 
    No 'Access-Control-Allow-Origin' header is present on the requested resource. 
    Origin 'null' is therefore not allowed access. 
    The response had HTTP status code 400. 

Alors, je crois comprendre le serveur API doit permettre le SPA fait la demande, ce qui est ce que je pensais que les lignes ci-dessus font.Alors, quelqu'un at-il une idée de ce qui se passe avec cela?

Répondre

0

Vous pouvez contrôler CORS sur le service d'application, et ce paramètre peut remplacer votre fichier web.config. Dans le menu App Service, faites défiler jusqu'à la section API et il y a un menu CORS. Puisque vous spécifiez certains en-têtes et méthodes autorisés, cette section pourrait ne pas fonctionner pour vous, mais si vous ajoutez un enregistrement pour *, puis le supprimez, il devrait commencer à utiliser votre gestion CORS basée sur web.config.