CORS问题与AJAX和Azure的反向代理

问题描述:

我有CORS问题。 我通过域B(我已经设置为反向代理和负载均衡器)将域A中的SPA从域A中的AJAX调用到域C中的REST API(也是我的)。 所有这三个都部署到Azure Web Apps。从A到C的工作CORS问题与AJAX和Azure的反向代理

呼叫直接的,没有问题。 但通过B从A到C的呼叫不起作用。

CORS被允许在B和C从A使用门户。 从B使用门户网站可以在C上使用CORS。

API服务器C的Web.config文件有以下几点:

<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> 

但我收到以下错误:

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. 

所以,我的理解是API服务器必须允许SPA提出了这样的要求,这是我认为上述的要求。所以,有谁知道这是怎么回事?

您可以控制在应用服务CORS,和设置可能会改写你的web.config。在App Service菜单中向下滚动到API部分,并且有一个CORS菜单。

既然你指定一些允许的头和方法部分可能不适合你,但如果你添加一条记录的*,然后删除它,它应该开始使用你的web.config基于CORS处理。