預檢Options請求
更新時間 2024-10-31 15:39:46
最近更新時間: 2024-10-31 15:39:46
分享文章
介紹如何通過API預檢Options請求。
接口功能介紹
瀏覽器在發送跨域請求之前會發送一個preflight請求(Options)給對象存儲,并帶上特定的來源域、HTTP方法和header等信息,以決定是否發送真正的請求。Options請求是由瀏覽器自動根據是否跨域來決定是否發送。
接口約束
無
URI
OPTIONS /{bucket}/{objectName}
路徑參數
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 |
|---|---|---|---|---|
| bucket | 是 | String | 桶名稱 | testBucket |
| objectName | 是 | String | 預檢查的對象名 | test |
Query參數
無
請求參數
請求頭header參數
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 | 下級對象 |
|---|---|---|---|---|---|
| Origin | 是 | String | 請求來源域,用于標識跨域請求。在實際請求中只能設置一個該請求頭 | //www.example.daliqc.cn | |
| Access-Control-Request-Method | 是 | String | 在實際請求中會用到的方法。在實際請求中只能設置一個該請求頭 | POST | |
| Access-Control-Request-Headers | 否 | String | 在實際請求中會用到的請求頭 | test1 | |
| Authorization | 是 | String | 用于驗證請求合法性的認證信息 |
請求體body參數
無
響應參數
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 | 下級對象 |
|---|---|---|---|---|---|
| Access-Control-Allow-Origin | 是 | String | 請求中包含的Origin,如果不允許該請求,則響應頭不包含該頭部 | //www.example.com | |
| Access-Control-Allow-Methods | 是 | String | 允許請求的HTTP方法,如果不允許該請求,則響應頭不包含該頭部 | PUT | |
| Access-Control-Allow-Headers | 是 | String | 允許請求攜帶的header的列表,如果請求中有不被允許的header,則不包含該頭部,請求也將被拒絕 | test1 | |
| Access-Control-Expose-Headers | 是 | String | 允許在客戶端JavaScript程序中訪問的headers的列表,只有在設置跨域的時候傳入ExposeHeader參數,此處才會返回 | test2 | |
| Access-Control-Max-Age | 是 | Integer | 允許瀏覽器緩存preflight結果的時間,單位為秒 | 100 |
請求示例
OPTIONS /testbucket/test
請求頭header
Origin: //example.daliqc.cn
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: test1
Authorization: authorization string
請求體body
無
響應示例
HTTP/1.1 200 OK
x-amz-request-id: BDC4B83DF5096BBE
Date: Wed, 21 Aug 2012 23:09:55 GMT
Etag: "1f1a1af1f1111111111111c11aed1da1"
Access-Control-Allow-Origin: //example.daliqc.cn
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Headers: test1
Access-Control-Expose-Headers: test2
Access-Control-Max-Age: 100
Content-Length: 0
狀態碼
| HTTP狀態 | 錯誤碼 | 描述 |
|---|---|---|
| 200 | 操作成功 | |
| 400 | InvalidArgument | 參數錯誤,如缺少Access-Control-Request-Method頭 |
| 403 | AccessDenied | 用戶沒有權限執行操作 |
錯誤碼
請參考 請求錯誤碼(原生接口)。