如何进行跨域配置?

功能说明

跨域资源共享 ( Cross-Origin Resource Sharing)是一种网络浏览器的技术规范,他为 Web 服务器定义了一种方式,允许网页从不同的域访问其资源。跨源资源共享标准通过新增一系列 HTTP 头,让服务器能声明那些来源可以通过浏览器访问该服务器上的资源。此时需要在 Response Header 中增加跨域相关配置,这样就可以使得资源的安全访问成为可能。

配置引导

登陆 CDN 控制台,依次进入:服务 管理 > 功能配置 > 访问控制 > CORS 跨域共享,点击【管理】按钮即可开始配置。如下图所示:

具体配置字段做如下说明:

Access-Control-Allow-Origin

返回的资源需要有一个 Access-Control-Allow-Origin 头信息,也可以设置通配符*,允许被所有域使用。语法如下:

Access-Control-Allow-Origin: *

举个栗子,允许来自 http://www.upyun.com 的请求,你可以这样指定:

Access-Control-Allow-Origin: http://www.upyun.com

Access-Control-Allow-Methods

表示允许的跨域请求的方法,在当前请求的域被允许后,还要检查当前请求的方法是否被允许,示例如下:

Access-Control-Allow-Methods: POST, GET, OPTIONS

Access-Control-Allow-Headers

也是在响应预检请求的时候使用,用来指明在实际的请求中,可以使用哪些自定义 HTTP 请求头,比如:

Access-Control-Allow-Headers: X-PINGOTHER,X-UPYUN

这样在实际的请求里,请求头信息里就可以有这么一条:

X-PINGOTHER: hello

Access-Control-Expose-Headers

设置浏览器允许访问的服务器的头信息的白名单,示例如下:

Access-Control-Expose-Headers: X-My-Custom-Header, X-Another-Custom-Header

这样,X-My-Custom-HeaderX-Another-Custom-Header 这两个头信息,都可以被浏览器得到。

Access-Control-Max-Age

这个头告诉我们这次预请求的结果的有效期是多久,单位为秒,设置示例如下:

Access-Control-Max-Age: 864000

表明在 864000s(10天)内,对该资源的跨域访问不再发送另外一条预请求。

注意事项

1.最多支持添加 10 条规则,匹配时从第一条开始逐条匹配,以最早匹配上的规则为准

2.允许的域Allow HeaderExpose Header 最多允许 20 行

3.允许的域Methods 建议根据需要使用最小的配置来保证安全性,多条规则间不要有覆盖和冲突

4.允许的域 需带上完整的域信息,即指定 https 或者 http,或者 *://foo.com 这样的形式

5.Allow HeaderExpose Header 不允许使用通配符,大小写不敏感

6.缓存时间 如果没有特殊情况可以酌情设置得大一点,默认为 86400 秒,最大为 604800 秒


这篇文章有帮助吗?

相关文章