你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要说明
Microsoft Azure CDN Standard(经典版)将于 2027 年 9 月 30 日停用。 为了避免出现服务中断,请务必在 2027 年 9 月 30 日之前将 Microsoft 的 Azure CDN 标准层(经典版)配置文件迁移到 Azure Front Door 标准层或高级层。 有关详细信息,请参阅 Microsoft Azure CDN Standard(经典版)停用。
Edgio 的 Azure CDN 已于 2025 年 1 月 15 日停用。 有关详细信息,请参阅 Edgio Azure CDN 停用常见问题解答。
什么是 CORS?
CORS(跨域资源共享)是一项 HTTP 功能,用于支持在一个域下运行的 Web 应用程序访问另一个域中的资源。 为了减少跨站点脚本攻击的可能性,所有现代 Web 浏览器都实现了称为同源策略的安全限制。 此项限制可以防止网页调用其他域中的 API。 CORS 提供了一种安全方式,允许一个源(源域)调用另一个源中的 API。
工作原理
CORS 请求有两种类型:简单请求和复杂请求。
简单请求:
浏览器发送带有其他源 HTTP 请求标头的 CORS 请求。 此请求头的值是为父页面提供服务的源,它被定义为协议、域和端口的组合。当来自 HTTPS://www.contoso.com 的页面尝试访问 fabrikam.com 源中的用户数据时,以下请求标头将发送到 fabrikam.com:
Origin: https://www.contoso.com
服务器可能会使用以下任意标头进行响应:
响应中含有 Access-Control-Allow-Origin 标头,指示允许使用哪个源站点。 例如:
Access-Control-Allow-Origin: https://www.contoso.com
如果服务器在检查源标头之后不允许跨源请求,则会显示 HTTP 错误代码(如 403)
带有通配符的 Access-Control-Allow-Origin 标头,允许所有源:
Access-Control-Allow-Origin: *
复杂请求:
复杂请求是一个 CORS 请求,它要求浏览器在发送实际 CORS 请求之前发送预检请求(即初步探测)。 如果原始 CORS 请求可以继续并且是对同一 URL 的 OPTIONS
请求,则预检请求会向服务器请求权限。
提示
有关 CORS 流和常见问题的详细信息,请查看 REST API 的 CORS 指南。
通配符或单个源场景
当 Access-Control-Allow-Origin 标头设置为通配符 (*) 或单个源时,Azure CDN 上的 CORS 会自动工作,无需其他配置。 CDN 将缓存第一个响应,且后续请求将使用相同的标头。
如果在源上设置 CORS 之前已对 CDN 发出请求,则需要清除终结点内容上的内容,以使用 Access-Control-Allow-Origin 标头重新加载内容。