我们已将现有 azure-search 索引上的 CORS 选项更改为“允许所有来源”,但从浏览器查询 api 仍会引发“不存在‘Access-Control-Allow-Origin’标头...”异常.
是否有一些我们缺少的特定参数,或者 Azure 中是否有更多的全局 CORS 设置覆盖了索引上的设置?
谢谢。
我们已将现有 azure-search 索引上的 CORS 选项更改为“允许所有来源”,但从浏览器查询 api 仍会引发“不存在‘Access-Control-Allow-Origin’标头...”异常.
是否有一些我们缺少的特定参数,或者 Azure 中是否有更多的全局 CORS 设置覆盖了索引上的设置?
谢谢。
我最终解决了它。
由于您收到错误 403:禁止,因此浏览器可能会认为这是一个 CORS 问题。但是,就我而言,我也从邮递员那里得到了这个错误。我的问题是我没有将 API 密钥添加到 url:
&api-key=YOURAPIKEY
https://NAMEOFYOURSERVICE.search.windows.net/indexes/YOURINDEX/docs?api-version=2015-02-28&search=SEARCHQUERY&api-key=YOURAPIKEY
要找到您的 API 密钥,请查看下图。我有 3 把钥匙试图找到最后一个有效...
RE:接受的答案显示“键”屏幕。api-keys 有两种类型:Admin 和 Query。
mogile_oli尝试并有效的第三个键是查询键。
将Admin密钥(前两个mogile_oli尝试)作为 URL 中的查询参数公开将存在安全风险!
请参阅主题Azure 搜索服务 REST中标记为身份验证和授权的部分。
当我们更改搜索实例的资源组时,出于某种原因,这一切都解决了。
很可能旧的 CORS 设置被缓存在客户端。除非您设置 maxAgeInSeconds,否则默认生存时间为 5 分钟。