在“存储桶列表”页面点击“属性”>“跨域设置”,进入“跨域设置”页面。在该页面,用户可以设置存储桶的跨域规则。
浏览器限制脚本内发起跨源HTTP请求,即同源策略。例如,当来自于A网站的页面中的JavaScript代码希望访问B网站的时候,浏览器会拒绝该访问,因为A、B两个网站是属于不同的域。通过配置CORS,可以解决不同域相互访问的问题,CORS定义了客户端Web应用程序在一个域中与另一个域中的资源进行交互的方式。
以下是有关使用 CORS 的示例场景:
- 场景 1:比如用户的网站www.exam***ple.com,后端使用了OOS。在web应用中提供了使用JavaScript实现的上传文件功能,但是在该web应用中,只能向www.exam***ple.com发送请求,向其他网站发送的请求都会被浏览器拒绝。这样就导致用户上传的数据必须从www.exam***ple.com中转。如果设置了跨域访问的话,用户就可以直接上传到OOS,而无需从www.exam***ple.com中转。
- 场景2:假设用户在名为example-bucket的Bucket中托管网站,网站的Endpoint是http://example-bucket.oos-website-cn.oos-xx.ctyunapi.cn。现在,用户想要使用网页上的 JavaScript (存储在此Bucket中),通过OOS API endpoint oos-xx.ctyunapi.cn向bucket发送GET 和 PUT 请求。浏览器通常会阻止 JavaScript 发送这些请求,但借助CORS,用户可以配置Bucket支持来自example-bucket.oos-website-cn.oos-xx.ctyunapi.cn 的跨域请求。
点击“添加规则”可以增加新的跨域访问规则:
项目 | 描述 |
---|---|
ID | 规则的唯一标识,最长255个字符,选填。 |
来源 | 允许跨域的源。 可以指定多个,每行一个,每行最多有一个使用通配符(*)。 |
允许的方法 | 允许跨域的请求:GET、PUT、HEAD、POST、DELETE。 |
允许的Headers | 通过Access-Control-Request-Headers请求头,指定预检OPTIONS请求中允许的请求头。 可以指定多个,每行一个,每行最多有一个使用通配符(*)。 |
暴露的Headers | 指定客户应用程序(例如,JavaScript XMLHttpRequest文件)能够访问的响应头。 可以指定多个,每行一个,不能使用通配符(*)。 |
缓存时间(秒) | 指定浏览器对特定资源的预检(OPTIONS)请求返回结果的缓存时间,单位为秒。 |