在 API 管理开发人员门户中为交互式控制台启用 CORS

适用范围:开发人员 | 基本 | 基本 v2 | 标准 | 标准 v2 | 高级 | 高级 v2

跨域资源共享(CORS)是一种基于 HTTP 标头的机制,它允许服务器指定浏览器可以从除自身以外的其他来源(域、方案或端口)加载资源。

若要让 API 管理 开发人员门户 的访问者在 API 参考页中使用交互式测试控制台,请在 API 管理实例中为 API 启用 CORS 策略 。 如果开发人员门户的域名不是跨域 API 请求的允许来源,测试控制台用户将看到 CORS 错误。

在某些情况下,可以将开发人员门户配置为 CORS 代理,而不是为 API 启用 CORS 策略。

先决条件

转到你的 API 管理实例

  1. 在 Azure 门户中,搜索并选择“API 管理服务”:

    在搜索结果中显示 API 管理服务的屏幕截图。

  2. 在“API 管理服务”页上,选择你的 API 管理实例:

    显示“API 管理服务”页面上的 API 管理实例的屏幕截图。

为 API 启用 CORS 策略

可以启用设置,为 API 管理实例中的所有 API 自动配置 CORS 策略。 还可以手动配置 CORS 策略。

注释

只执行一个 CORS 策略。 如果指定多个 CORS 策略(例如,在 API 级别和所有 API 级别),则交互式控制台可能无法按预期工作。

自动启用 CORS 策略

  1. 在 API 管理实例的左侧菜单中的“开发人员门户”下,选择“门户概述”。
  2. “启用 CORS”下,将显示 CORS 策略配置的状态。 警告框指示不存在或配置错误的策略。
  3. 若要从开发人员门户为所有 API 启用 CORS,请选择“ 启用 CORS”。

显示在开发人员门户中检查 CORS 策略状态的位置的屏幕截图。

手动启用 CORS 策略

  1. 选择全局级别手动应用链接,以查看生成的策略代码。
  2. 请前往 API 管理实例中 API 部分的 所有 API
  3. 选择“入站处理”部分中的</>图标。
  4. 在策略编辑器中,将策略插入到 XML 文件的 <inbound> 部分中。 确保 <源> 值与开发人员门户的域匹配。

注释

如果在产品范围内应用 CORS 策略,而不是 API(s) 范围,并且 API 通过标头使用订阅密钥身份验证,则控制台将不起作用。

浏览器会自动发出 OPTIONS HTTP 请求,该请求不包含包含订阅密钥的标头。 由于缺少订阅密钥,API 管理无法将 OPTIONS 调用与产品相关联,因此无法应用 CORS 策略。

解决方法是,可以在查询参数中传递订阅密钥。

自定义域名的 CORS 配置

如果为开发人员门户配置 自定义域 并希望访问者在 API 参考页上使用测试控制台,请确保为自定义开发人员门户域名启用 CORS。

配置自定义域时,可以启用设置以在 CORS 策略中添加自定义开发人员门户域的源。 如果已为默认域启用 CORS,则这两个源都将包含在 CORS 策略中。 可以随时更改 CORS 策略设置。

CORS 代理选项

对于某些方案(例如,如果 API 管理网关是网络隔离的),可以选择将开发人员门户配置为 CORS 代理本身,而不是为 API 启用 CORS 策略。 CORS 代理通过 API 管理实例中的门户后端路由交互式控制台的 API 调用。

注释

如果 API 通过自承载网关公开,或者服务位于虚拟网络中,则需要从 API 管理开发人员门户的后端服务到网关的连接。

若要配置 CORS 代理,请以管理员身份访问开发人员门户:

  1. 在 API 管理实例的 “概述 ”页上,选择 “开发人员门户”。 开发人员门户将在新的浏览器选项卡中打开。
  2. 在管理界面的左侧菜单中,选择 “页面>API>详细信息”。
  3. “API:详细信息” 页上,选择 “操作:详细信息” 小组件,然后选择 “编辑小组件”
  4. 选择 “使用 CORS 代理”。
  5. 保存对门户的更改,然后 重新发布门户

自托管开发者门户的 CORS 配置

如果您在开发人员门户上自托管,则需要以下配置才能启用 CORS:

  • 使用 backendUrl 配置文件中的选项指定门户的后端终结点。 否则,自托管门户不了解后端服务的位置。

  • Origin 域值添加到自承载门户配置,指定托管自承载门户的环境。 了解详细信息

  • 有关配置策略的详细信息,请参阅 “设置或编辑策略”。
  • 有关 CORS 策略的详细信息,请参阅 cors 策略参考。