Sebelum mengirim permintaan lintas asal, browser mengirimkan permintaan preflight (OPTIONS) yang mencakup asal tertentu, metode HTTP, dan informasi header ke Object Storage Service (OSS) untuk menentukan apakah permintaan lintas asal dapat dikirim. Browser secara otomatis memutuskan apakah akan mengirimkan permintaan preflight berdasarkan karakteristik permintaan sebenarnya.
Struktur permintaan
OPTIONS /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Origin:Origin
Access-Control-Request-Method:HTTP method
Access-Control-Request-Headers:Request HeadersHeader permintaan
Header | Tipe | Diperlukan | Contoh | Deskripsi |
Origin | String | Ya | http://www.example.com | Asal dari permintaan, yang digunakan untuk mengidentifikasi permintaan lintas asal. Anda hanya dapat menentukan satu header Origin dalam permintaan lintas asal. Nilai default: null |
Access-Control-Request-Method | String | Ya | PUT | Metode yang digunakan dalam permintaan lintas asal sebenarnya. Anda hanya dapat menentukan satu header Access-Control-Request-Method dalam permintaan lintas asal. Nilai default: null |
Access-Control-Request-Headers | String | Tidak | x-oss-test1,x-oss-test2 | Header kustom yang akan dikirim dalam permintaan lintas asal sebenarnya. Anda dapat mengonfigurasi beberapa header kustom dalam permintaan lintas asal. Header kustom dipisahkan oleh koma (,). Nilai default: null |
Header respons
Header | Tipe | Contoh | Deskripsi |
Access-Control-Allow-Origin | String | http://www.example.com | Asal yang termasuk dalam permintaan. Jika permintaan ditolak, respons tidak akan berisi header ini. |
Access-Control-Allow-Methods | String | PUT | Metode HTTP dari permintaan. Jika permintaan ditolak, respons tidak akan berisi header ini. |
Access-Control-Allow-Headers | String | x-oss-test,x-oss-test1 | Daftar header yang termasuk dalam permintaan. Jika permintaan mencakup header yang tidak diizinkan, respons tidak akan berisi header tersebut dan permintaan ditolak. |
Access-Control-Expose-Headers | String | x-oss-test1,x-oss-test2 | Daftar header yang dapat diakses oleh aplikasi JavaScript pada klien. |
Access-Control-Max-Age | Integer | 60 | Durasi maksimum untuk browser menyimpan hasil preflight. Unit: detik. |
Contoh
Contoh Permintaan
OPTIONS /testobject HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 24 Feb 2012 05:45:34 GMT
Origin:http://www.example.com
Access-Control-Request-Method:PUT
Access-Control-Request-Headers:x-oss-test1,x-oss-test2Contoh Respons
HTTP/1.1 200 OK
x-oss-request-id: 5051845BC4689A033D00****
Date: Fri, 24 Feb 2012 05:45:34 GMT
Access-Control-Allow-Origin: http://www.example.com
Access-Control-Allow-Methods: PUT
Access-Control-Expose-Headers: x-oss-test1,x-oss-test2
Connection: keep-alive
Content-Length: 0
Server: AliyunOSSossutil
Untuk informasi lebih lanjut tentang perintah ossutil yang sesuai dengan operasi ini, lihat option-object.
Kode kesalahan
Kode kesalahan | Kode status HTTP | Deskripsi |
AccessForbidden | 403 | Pesan kesalahan yang dikembalikan karena OSS tidak mengizinkan permintaan lintas asal atau berbagi sumber daya lintas domain (CORS) dinonaktifkan untuk bucket. Anda dapat memanggil PutBucketCORS untuk mengaktifkan CORS untuk bucket. Setelah CORS diaktifkan untuk bucket dan permintaan preflight dikirim dari browser, OSS menentukan apakah akan mengizinkan permintaan lintas asal sebenarnya berdasarkan aturan CORS yang ditentukan. |