适用于Azure APIM的CORS仅在对操作进行设置而不在产品级别上起作用

时间:2019-10-23 11:14:06

标签: azure-api-management

我们对CORS政策有疑问,不确定是错误还是?

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

我们了解产品级别的CORS政策也应该可行,我们可能错了,或者有一些细节需要我们注意才能在产品级别上起作用?

1 个答案:

答案 0 :(得分:0)

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

另一方面,如果键是在查询字符串中传递的,则此信息会在OPTIONS请求中提供,并且APIM会按需运行。

这本身不是APIM问题,因为CORS规范本身不允许OPTIONS请求中包含任何其他标头。它仅适用于需要预检OPTIONS请求的请求。 CORS GET请求应该可以直接发送。