我们的 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/