4

我们已将现有 azure-search 索引上的 CORS 选项更改为“允许所有来源”,但从浏览器查询 api 仍会引发“不存在‘Access-Control-Allow-Origin’标头...”异常.

是否有一些我们缺少的特定参数,或者 Azure 中是否有更多的全局 CORS 设置覆盖了索引上的设置?

谢谢。

4

4 回答 4

4

我最终解决了它。

由于您收到错误 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 把钥匙试图找到最后一个有效...

在此处输入图像描述

于 2016-09-22T15:34:08.110 回答
2

RE:接受的答案显示“键”屏幕。api-keys 有两种类型:Admin 和 Query。

  • 管理员密钥只能在 HTTP 请求标头中指定。
  • 查询键在索引中授予只读访问权限,可以在 HTTP 请求标头中指定,也可以在 URL 中的查询参数中指定。

mogile_oli尝试并有效的第三个键是查询键。

Admin密钥(前两个mogile_oli尝试)作为 URL 中的查询参数公开将存在安全风险!

请参阅主题Azure 搜索服务 REST中标记为身份验证和授权的部分。

于 2019-08-22T19:46:43.593 回答
0

当我们更改搜索实例的资源组时,出于某种原因,这一切都解决了。

于 2016-01-18T20:25:47.183 回答
0

很可能旧的 CORS 设置被缓存在客户端。除非您设置 maxAgeInSeconds,否则默认生存时间为 5 分钟。

于 2016-01-18T22:20:15.190 回答