当您需要跨域共享或者访问资源时,您可以通过自定义HTTP响应头来实现。通过本文您可以了解跨域共享的概念、配置逻辑和应用案例。
什么是跨域资源共享
跨域资源共享CORS(Cross-Origin Resource Sharing)简称跨域访问,是HTML5提供的标准跨域解决方案,允许Web应用服务器进行跨域访问控制,使得跨域数据传输得以安全进行。
跨域资源共享CORS数据交互示意图:

CDN中开启了跨域共享之后交互示意图:

开启跨域资源共享
举例
示例一:如果跨域资源共享的响应头值设置了单个或者多个值(多个值之间用“,”分隔)。
- 如果用户请求头里携带的“Origin”参数值与被设置的任意一个值精确匹配,就会响应对应的跨域头。
- 如果都没有精确匹配上,则不响应跨域头。
CDN上设置:Access-Control-Allow-Origin:http://example.com,https://aliyundoc.com。
- 如果用户请求携带的origin头是http://example.com,则CDN节点将会响应Access-Control-Allow-Origin:http://example.com。
- 如果用户请求携带的origin头是http://aliyundoc.com,则CDN节点将会响应Access-Control-Allow-Origin:http://aliyundoc.com。
- 如果用户请求携带的origin头是http://aliyun.com,则CDN节点将不会响应Access-Control-Allow-Origin。
示例二:如果跨域资源共享的响应头值设置了泛域名,则会校验请求头中Origin值是否能匹配上Access-Control-Allow-Origin的泛域名。
CDN上设置:Access-Control-Allow-Origin:http://*.aliyundoc.com。
- 用户请求:Origin:http://demo.aliyundoc.com。CDN响应:Access-Control-Allow-Origin:http://demo.aliyundoc.com。
- 用户请求:Origin:http://demo.example.com。CDN不响应。
- 用户请求:Origin:https://demo.aliyundoc.com。CDN不响应(协议头不同,用户请求的是HTTPS协议,CDN上设置的是HTTP协议)。