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处理。