文档

0034-00000009

更新时间:

问题描述

跨域资源共享CORS(Cross-Origin Resource Sharing)配置XML中某条规则中AllowedOrigin参数不合法。

问题原因

您通过PutBucketCors接口来配置某个Bucket的跨域资源共享规则,但是您提交的XML配置的某条规则中AllowedOrigin参数有误,比如其中包括了多个星号(*)通配符,或者内容为空。

问题示例

比如您发起了如下请求:

PUT /?cors HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length: 186
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: OSS qn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
    <CORSRule>
    	<AllowedOrigin></AllowedOrigin>
      <AllowedOrigin>***</AllowedOrigin>
      <AllowedMethod>PUT</AllowedMethod>
      <AllowedMethod>GET</AllowedMethod>
      <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
    <ResponseVary>true</ResponseVary>
</CORSConfiguration>

AllowedOrigin参数用于指定允许的跨域请求来源。 OSS支持使用多个元素来指定多个允许的来源。这个参数是必需的。AllowedOrigin中只能使用一个星号(*)通配符。如果指定AllowedOrigin为星号(*),则表示允许所有来源的跨域请求。上述XML配置中的CORSRule中第一个AllowedOrigin节点值为空字符串,第二个包含了三个星号(*),都不符合规范。

解决方案

在通过PutBucketCors接口来配置某个Bucket跨域资源共享规则时确保您提交的XML配置正确无误,特确保必须存在的字段AllowedOrigin参数存在且符合上述规范。

PUT /?cors HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length: 186
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: OSS qn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
    <CORSRule>
      <AllowedOrigin>*</AllowedOrigin>
      <AllowedMethod>PUT</AllowedMethod>
      <AllowedMethod>GET</AllowedMethod>
      <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
    <ResponseVary>false</ResponseVary>
</CORSConfiguration>

相关文档