問題描述
跨域資源共用CORS(Cross-Origin Resource Sharing)配置XML中某條規則中AllowedMethod參數不合法。
問題原因
您通過PutBucketCors介面來配置某個Bucket的跨域資源共用規則,但是您提交的XML配置的某條規則中AllowedMethod參數不在允許的範圍內。
問題樣本
比如您發起了如下請求:
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></AllowedMethod>
<AllowedMethod>TEST</AllowedMethod>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
<ResponseVary>true</ResponseVary>
</CORSConfiguration>AllowedMethod參數用於指定允許的跨域要求方法。取值可為GET、PUT、DELETE、POST、HEAD。上述XML配置中的CORSRule中第一個AllowedMethod節點值為空白字串,第二個“TEST”不是合法的取值,都不符合規範。
解決方案
在通過PutBucketCors介面來配置某個Bucket跨域資源共用規則時,請確保您提交的XML配置正確無誤,且AllowedMethod參數符合上述規範。
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>