跨源资源共享 (CORS) 配置

CAUTION
如果已在 Dispatcher 中启用缓存,则不需要 CORS 筛选条件,因此可忽略此部分。
NOTE
有关 AEM 中 CORS 资源共享策略的详细概述,请参阅了解跨源资源共享 (CORS)

要访问 GraphQL 端点,必须配置 CORS 策略并添加到通过 Cloud Manager 部署到 AEM 的 AEM 项目。此操作可通过为所需端点添加相应的 OSGi CORS 配置文件来完成。可以创建多个 CORS 配置并部署到不同环境。在 WKND 参考网站中可找到示例。

CORS 配置必须指定可信网站源 alloworiginalloworiginregexp,必须向其授予访问权限。

配置文件的命名必须类似于:com.adobe.granite.cors.impl.CORSPolicyImpl~appname-graphql.cfg.json,其中 appname 体现了您应用程序的名称。

例如,要授予对 GraphQL 端点 /content/cq:graphql/wknd/endpoint 的访问权限,以及对 https://my.domain 的持久查询端点的访问权限,您可以使用:

{
  "supportscredentials":false,
  "supportedmethods":[
    "GET",
    "HEAD",
    "POST"
  ],
  "exposedheaders":[
    ""
  ],
  "alloworigin":[
    "https://my.domain"
  ],
  "maxage:Integer":1800,
  "alloworiginregexp":[
    ""
  ],
  "supportedheaders":[
    "Origin",
    "Accept",
    "X-Requested-With",
    "Content-Type",
    "Access-Control-Request-Method",
    "Access-Control-Request-Headers"
  ],
  "allowedpaths":[
    "/content/cq:graphql/wknd/endpoint.json",
    "/graphql/execute.json/.*"
  ]
}

如果您已为端点配置虚名路径,还可以在 allowedpaths 中使用它。

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab