azure-api-management - Azure APIM 的 CORS 仅在操作级别而非产品级别设置时才起作用

标签 azure-api-management

我们的 CORS 政策存在问题,不确定是错误还是?

我们尝试在 API 中使用的产品上设置 CORS 策略,但没有任何效果。然后,我们在 API 级别对“所有操作”应用相同的 CORS 策略。这次它按预期工作了。

据我们了解,产品级别的 CORS 政策也应该是可行的,但我们可能是错的,或者我们是否应该了解一些细节才能使其在产品级别上发挥作用?

最佳答案

如果您的产品需要订阅 CORS 策略才能工作,则必须在查询字符串中传递 key 。这里的问题是,如果您尝试在 header 中传递订阅 key ,浏览器仍然会发送 OPTIONS 请求,而无需任何额外的 header 。 APIM 将无法识别产品并应用订阅 key 。因此 CORS 政策将不起作用。

如果 key 在查询字符串中传递,则此信息将出现在 OPTIONS 请求中,APIM 将按需要工作。

这本身不是 APIM 问题,因为 CORS 规范本身不允许 OPTIONS 请求中存在任何额外的 header 。并且它仅适用于需要预检 OPTIONS 请求的请求。 CORS GET 请求应该像直接发送的那样工作。

关于azure-api-management - Azure APIM 的 CORS 仅在操作级别而非产品级别设置时才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521581/

相关文章:

Azure API 管理新开发门户 - 如何添加新管理员

azure - 验证 Azure APIM 策略中的多个颁发者

c# - Azure APIM URL 抛出 System.Net.WebException - SSL/TLS 如何在 azure web api 和 azure APIM 中产生差异?

javascript - Azure API 管理 > CORS 和 POST

azure - APIM 从现有资源生成 API 不断返回 200

azure - 将第二个区域添加到现有 API 管理时是否会出现中断?

azure - 是否可以通过Graph或PowerShell查询可用的服务原理API?

azure - 使用托管标识对 Azure 服务总线进行经过身份验证的 REST API 调用

azure-logic-apps - 从 Azure 逻辑应用访问 Azure VNet

Azure API 管理 : Origin header was missing or empty and the request was classified as not cross-domain. CORS 策略未应用