结合使用跨域资源共享(CORS)和 Cloudflare

了解跨域资源共享(CORS)如何保护 Cloudflare 的 CDN 上缓存的资源,以及如何管理带有 CORS 标头的资产。


概述

跨域请求即请求源站外部的网站资源。例如,a.example.com 尝试提供来自 b.secondexample.com 的资源。CORS 会指示浏览器确认 a.example.com 是否允许跨域请求(例如来自 b.secondexample.com 的图像或 JavaScript 资源)。浏览器不会加载 CORS 不允许的资源。

Cloudflare 通过以下方式支持 CORS:

  • 基于 Host 标头、Origin 标头、URL 路径和查询识别缓存的资产。这允许不同的资源使用同样的 Host 标头,但不同的 Origin 标头。
  • Access-Control-Allow-Origin 标头从源站传递到浏览器。

通过 Access-Control-Allow-Origin 标头,服务器可以指定与外部域名分享其资源的规则。当服务器收到资源访问请求时,它会响应并提供一个 Access-Control-Allow-Origin 标头值。Access-Control-Allow-Origin 标头常应用于 可缓存的内容。根据请求中发送的 Origin 标头,Web 服务器可能会以不同的 Access-Control-* 标头作为响应。


添加或更改 CORS 标头

如果您在源 Web 服务器上添加或更改 CORS 配置,按 URL 清除 Cloudflare 缓存时,不会更新 CORS 标头。您可以通过以下某种选项,强制 Cloudflare 检索新的 CORS 标头:

  • 更改文件名或 URL,以绕过缓存并指示 Cloudflare 检索最新的 CORS 标头。
  • 使用单文件清除 API 指定相应的 CORS 标头和清除请求。
  • 更新资源在源 Web 服务器上的最后修改时间。然后,完成完全清除,以便检索资产的最新版本,包括更新后的 CORS 标头。

相关资源

Not finding what you need?

95% of questions can be answered using the search tool. This is the quickest way to get a response.

由 Zendesk 提供技术支持