653
阿裏雲
OSS跨域資源共享(CORS)錯誤及排除__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
跨域資源共享(Cross Origin Resource Sharing,簡稱 CORS)的介紹及配置請參看 跨域資源共享最佳實踐 。
配置項
CORS配置有以下幾項:
- 來源(AllowedOrigin)
允許跨域請求的來源,可以同時指定多個。配置時需帶上完整的域信息,例如https://10.100.100.100:8001
或https://www.aliyun.com
。注意, 不要遺漏了協議名http或https ,如果端口不是默認的80
,還需要帶上端口。如果不能確定的域名,可以打開瀏覽器的調試功能,查看header中的Origin
。域名支持通配符*
,每個域名中允許最多使用一個*
,例如https://*.aliyun.com
。如果來源指定為*
,則表示允許所有來源的跨域請求。 - Method
按照需求開通對應的方法即可,調試時可以全部選擇。 - Allow Header
允許的跨域請求header。允許配置多條匹配規則,以回車間隔。在Access-Control-Request-Headers中指定的每個header,都必須在Allowed Header中有對應項。Header容易遺漏,沒有特殊需求的情況下,建議設置為*
,表示允許所有。大小寫不敏感。 - Expose Header
暴露給瀏覽器的header列表,即用戶從應用程序中訪問的響應頭(例如一個Javascript的XMLHttpRequest對象)。不允許使用通配符。具體的配置需要根據應用的需求確定,隻暴露需要使用的header。如果不需要暴露可以不填。大小寫不敏感。該項是可選配置項。 - 緩存時間(MaxAgeSeconds)
瀏覽器對特定資源的預取請求(OPTIONS請求)返回結果的緩存時間,單位為秒。如果沒有特殊情況可以稍大一點,比如60秒。該項是可選配置項。
CORS的配置方法一般是針對每個訪問來源單獨配置規則,不將多個來源混到一個規則,多個規則之間不要有覆蓋衝突。其它的選項隻開放需要的權限即可。
錯誤排除
報錯
CORS配置錯誤會報如下錯誤:
瀏覽器報類似如下錯誤:
OPTIONS https://bucket.oss-cn-beijing.aliyuncs.com/
XMLHttpRequest cannot load https://bucket.oss-cn-beijing.aliyuncs.com/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '{yourwebsiet}' is therefore not allowed access. The response had HTTP status code 403.
OSS報如下錯誤:
<Code>AccessForbidden</Code>
<Message>CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec.</Message>
提示:
- CORS報錯一般是站點類應用導致,瀏覽器中可以查看請求詳情。如Chrome,按
F12
打開開發者工具
,在Network
中查看相應元素;- OSS返回的錯誤可以通過抓包獲取。如使用Wireshark,篩選器可以指定為
host bucket-name.oss-cn-beijing.aliyuncs.com
。- OSS返回的錯誤也可以通過CORS的調試程序 oss-h5-upload-js-direct 界麵提示獲取。
其它錯誤請參看 OSS 403錯誤及排除。
排錯
CORS可能錯誤如下:
- 來源(AllowedOrigin)配置不正確
- Method(AllowedMethod)配置錯誤
- Allow Header 配置錯誤
- Expose Header 配置錯誤
調試方法:
- 將 來源(AllowedOrigin)設置成
*
,確認該配置項無誤。如果設置成*
後可以成功上傳,說明是來源(AllowedOrigin)配置錯誤,請根據規則認真檢查。 - 選擇 Method(AllowedMethod) 的全部選項(GET、PUT、DELETE、POST、HEAD),確認該配置項目無誤。
- 將 Allow Header 配置成
*
,確認該配置無誤。 - 將 Expose Header 設置為指定值或者不填,確認該項配置無誤。
提示:在OSS控製台,選擇Bucket後,通過 Bucket屬性 > 跨域設置 配置上述選項。
最後更新:2016-11-23 16:04:18
上一篇:
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
下一篇:
OSS 403錯誤及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
金融風控__阿裏雲ET介紹-阿裏雲
執行自動快照策略__快照相關接口_API 參考_雲服務器 ECS-阿裏雲
升級RDS實例版本__實例管理_API 參考_雲數據庫 RDS 版-阿裏雲
雲服務器 ECS 申請解鎖
如何使用代金券?___代金券_代金券及推薦碼_財務-阿裏雲
GetBucketAcl__關於Bucket的操作_API 參考_對象存儲 OSS-阿裏雲
錄製工具__腳本編寫_使用手冊_性能測試-阿裏雲
UploadSession__SDK介紹_批量數據通道_大數據計算服務-阿裏雲
SSH 服務啟動時出現如下錯誤:main process exited, code=exited__遠程登錄 (SSH)_Linux操作運維問題_雲服務器 ECS-阿裏雲
ALIYUN::ECS::SecurityGroupIngress__資源列表_資源編排-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲