LocalHost CORS 在 Azure APIM 的 Preflight 中失败

LocalHost CORS failing in Preflight for Azure APIM

尝试从本地主机与我的 Azure APIM 端点通信时,我收到 CORS 预检失败。我已经修改了 APIM 和 .Net Core API 本身的政策,但我仍然没有运气。以下是我的政策在 APIM 中的 'All Operations' 部分的外观。如果有帮助的话,前端是一个 angular 应用程序。在 GET 上,我也在 header 中附加了 ocp-apim-subscription-key。

         <cors>
            <allowed-origins>
                <origin>*</origin>
            </allowed-origins>
            <allowed-methods preflight-result-max-age="300">
                <method>*</method>
            </allowed-methods>
            <allowed-headers>
                <header>*</header>
            </allowed-headers>
            <expose-headers>
                <header>*</header>
            </expose-headers>
        </cors>
  • 您应该在 Azure app servicesAPIM 中配置 CORS。
  • 请检查您的网络应用程序中的 cross-domain 设置。
  • 配置自定义 header:Seckey如果您的 CORS 策略中有。
  • 将以下内容添加到您的 web.config。
  • 您可能需要添加其他 header,例如 Access-Control-Allow-Methods 和 Access-Contorl-Allow-Headers,具体取决于您针对 API 提出的请求。
  <system.webServer>  
       <httpProtocol> 
        <customHeaders>  
         <add  name="Access-Control-Allow-Origin"  value="*"  />            
        </customHeaders> 
       </httpProtocol> 
        </system.webServer>

**请参考以下文件了解更多详情**

Failed to call APIs from web page behind Azure APIM due to CORS issues

Getting Access Control Allow Origin Error While Accessing Web Api hosted in AZURE RRS feed and CORS Preflight request

在与我公司的 Devops 团队和 IT 管理部门合作后,我得以解决这个问题。显然,我公司的计算机需要我们 Windows HOST 文件中来自 azure 的服务器 APIMs IP 的工作域。一旦我添加了它,我就没有问题了,政策就可以发挥作用了。