azure-api-management - Azure APIM 的 CORS 仅在操作而不是产品级别设置时有效
问题描述
我们对 CORS 政策有疑问,不确定是错误还是?
我们尝试对 API 中使用的产品设置 CORS 策略,但没有任何效果。然后我们在 API 级别为“所有操作”应用了相同的 CORS 策略。这次它按预期工作。
正如我们理解的产品级别的 CORS 政策也应该是可行的,我们可能是错的,或者是否有一些细节我们应该知道在产品级别上进行这项工作?
解决方案
如果您的产品需要订阅 CORS 策略才能工作,则必须在查询字符串中传递密钥。这里的问题是,如果您尝试在标头浏览器中传递订阅密钥,仍然会发送 OPTIONS 请求而没有任何额外的标头。APIM 将无法识别产品并应用订阅密钥。因此 CORS 策略将不起作用。
另一方面,如果在查询字符串中传递密钥,则此信息将在 OPTIONS 请求中提供,并且 APIM 按需要工作。
这本身不是 APIM 问题,因为 CORS 规范本身不允许在 OPTIONS 请求中使用任何额外的标头。它仅适用于需要预检 OPTIONS 请求的请求。CORS GET 请求应该可以直接发送。
推荐阅读
- javascript - 从 html 字符串获取列值 - Javascript
- scala - Scala Refined size 上的模式匹配
- python - 无法在 android 上的 pygame 中打开图像
- python-3.x - 如何使用python在每行文件中的值分隔符之前和之后修剪前导和尾随空格
- python - 如何在 Python 中与线程并行运行两个函数?
- powershell - 如何向查询添加另一个查询
- django - 相当于 reverse() 的 Django 通道
- image - 使用 jQuery 上传前预览图像
- kotlin - Kotlin - 检查参数是否为空的通用方法
- mysql - 在 laravel 中显示带有 where not in 子句的值