【问题标题】:CORS issues on Azure SearchAzure 搜索上的 CORS 问题
【发布时间】:2019-08-23 03:46:43
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 您在 cors 选项中添加了哪些来源?您是否从同一个域访问它?

标签: azure cors azure-cognitive-search


【解决方案1】:

我自己解决了。

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

【讨论】:

    【解决方案2】:

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

    • Admin 键只能在 HTTP 请求标头中指定。
    • Query 键在索引中授予只读访问权限,可以在 HTTP 请求标头中指定,也可以在查询中指定 网址中的参数。

    mogile_oli 尝试的第三个键是 Query 键。

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

    请参阅主题Azure Search Service REST 中标有身份验证和授权的部分。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 我们等待的不止于此,但它仍然没有正确发送 CORS 标头,即使我们将 maxAgeInSeconds 设置为 300,但更改资源组似乎已经以某种方式解决了问题。
        • Azure 搜索中的 CORS 实现与资源组无关,因此这可能是巧合。您使用的是哪个浏览器?
        • 我遇到了同样的问题。我更改了资源组(尽管它不应该相关),但没有帮助。这个问题最终没有解决,但我会及时通知你。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-05
        • 2019-02-22
        • 2017-10-30
        • 2017-03-18
        • 1970-01-01
        • 1970-01-01
        • 2015-01-04
        相关资源
        最近更新 更多