Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cross-origin dukungan berbagi sumber daya dan Amazon EC2
Amazon EC2 API mendukung berbagi sumber daya lintas asal (CORS). CORS mendefinisikan cara untuk aplikasi web klien yang dimuat dalam satu domain untuk berinteraksi dengan sumber daya di domain yang berbeda. Untuk informasi selengkapnya, buka Rekom endasi mywebsite.example.com, dan Anda ingin menggunakannya JavaScript di halaman web Anda untuk membuat permintaan ke Amazon EC2 API. Biasanya, browser memblokir agar JavaScript tidak mengizinkan permintaan ini, tetapi dengan CORS, Anda dapat membuat panggilan API Amazon EC2 lintas asal. mywebsite.example.com
CORS sudah diaktifkan untuk Amazon EC2 API, dan siap untuk Anda gunakan. Anda tidak perlu melakukan langkah-langkah konfigurasi tambahan untuk mulai menggunakan fitur ini. Tidak ada perubahan pada cara Anda melakukan panggilan ke Amazon EC2 API; mereka masih harus ditandatangani dengan AWS kredenSIAL yang valid untuk memastikan bahwa AWS dapat mengotentikasi pemohon. Untuk informasi selengkapnya, lihat AWS Men andatangani permintaan API di Panduan Pengguna IAM.
Implementasi CORS di Amazon EC2 API distandarisasi. Aplikasi Anda dapat mengirim permintaan sederhana ke Amazon EC2 API, atau, tergantung pada konten permintaan, permintaan preflight diikuti oleh permintaan aktual. Amazon EC2 mengizinkan permintaan dari asal mana pun
Untuk informasi lebih lanjut tentang CORS dan contoh cara kerjanya, buka artikel berikut di Mozilla Developer Network: HTTP access control (CORS).
Permintaan sederhana
Berikut ini adalah kriteria yang menentukan permintaan sederhana atau aktual:
-
Permintaan hanya menggunakan metode
GETatauPOSTHTTP. JikaPOSTmetode ini digunakan, maka hanyaContent-Typedapat menjadi salah satu dari berikut ini:application/x-www-form-urlencoded,multipart/form-data, atautext/plain. -
Permintaan tidak menetapkan header khusus, seperti
X-Other-Header.
Amazon EC2 mengizinkan permintaan dari asal mana pun. Setiap GET atau POST permintaan yang mencoba menggunakan kredentif browser dengan menyet Access-Control-Allow-Credentials el nilai ke true (whereXMLHttpRequest.withCredentials = true) akan gagal.
Informasi berikut menjelaskan header permintaan ke Amazon EC2:
Nilai header permintaan sederhana
Origin: Menentukan domain yang ingin akses ke sumber daya (dalam hal ini, sumber dayanya adalah Amazon EC2). Ini dimasukkan oleh browser dalam permintaan lintas asal.
Informasi berikut menjelaskan header respons yang dikembalikan (atau tidak dikembalikan) Amazon EC2 setelah permintaan sederhana atau aktual:
Nilai header respons sederhana
-
Access-Control-Allow-Origin: Menentukan domain yang dapat mengakses sumber daya (dalam hal ini, sumber dayanya adalah Amazon EC2). Ini selalu dikembalikan dengan nilai*. Oleh karena itu, Amazon EC2 mengizinkan asal lintas domain apa pun, dan tidak pernah mengizinkan kredentif browser, seperti cookie. -
Access-Control-Allow-Credentials: Menunjukkan apakah kredentif browser dapat digunakan untuk membuat permintaan yang sebenarnya. Ini tidak pernah dikembalikan. Oleh karena itu, browser harus menafsirkan nilainya sebagaiAccess-Control-Allow-Credentials: false.
Permintaan preflight
Jika konten permintaan Anda memenuhi kriteria di bawah ini, maka permintaan Anda diperiksa apakah permintaan sebenarnya harus dikirim. Permintaan preflight pertama-tama mengirimkan permintaan HTTP ke sumber daya (dalam hal ini, Amazon EC2) menggunakan metode ini. OPTIONS
Berikut ini adalah kriteria yang menentukan permintaan preflight:
-
Permintaan menggunakan metode HTTP selain
GETatauPOST. Namun, jikaPOSTmetode ini digunakan, makaContent-Typebukan salah satu dari berikut ini:application/x-www-form-urlencoded,multipart/form-data, atautext/plain. -
Permintaan mengatur header khusus; misalnya,
X-Other-Header.
Implementasi CORS Amazon EC2 memungkinkan header apa pun, dan memungkinkan asal apa pun dalam permintaan aktual.
Informasi berikut menjelaskan header permintaan untuk permintaan preflight ke Amazon EC2:
Nilai header permintaan preflight
-
Origin: Menentukan domain yang ingin akses ke sumber daya (dalam hal ini, sumber dayanya adalah Amazon EC2). Ini dimasukkan oleh browser dalam permintaan lintas asal. -
Access-Control-Request-Method: Metode HTTP yang akan digunakan dalam permintaan aktual dari browser. -
Access-Control-Request-Headers: Header khusus yang akan dikirim dalam permintaan lintas asal yang sebenarnya.
Informasi berikut adalah tentang header respons yang dikembalikan (atau tidak dikembalikan) Amazon EC2 setelah permintaan preflight:
Nilai header respons preflight
-
Access-Control-Allow-Origin: Menentukan domain yang dapat mengakses sumber daya (dalam hal ini, sumber dayanya adalah Amazon EC2). Ini selalu dikembalikan dengan nilai*. Oleh karena itu, Amazon EC2 mengizinkan asal lintas domain apa pun, dan tidak pernah mengizinkan kredentif browser, seperti cookie. -
Access-Control-Allow-Credentials: Menunjukkan apakah kredentif browser dapat digunakan untuk membuat permintaan yang sebenarnya. Ini tidak pernah dikembalikan oleh Amazon EC2. Oleh karena itu, browser harus menafsirkan nilainya sebagaiAccess-Control-Allow-Credentials: false. -
Access-Control-Expose-Headers: Memungkinkan header untuk diekspos ke browser. Ini tidak pernah dikembalikan oleh Amazon EC2. Oleh karena itu, tidak ada header pengembalian dari Amazon EC2 yang dapat dibaca oleh domain yang meminta. -
Access-Control-Max-Age: Menentukan berapa lama hasil permintaan preflight dapat di-cache. Nilai diatur ke 1800 detik (30 menit). -
Access-Control-Allow-Methods: Menunjukkan metode mana yang diizinkan saat membuat permintaan aktual. Metode berikut diperbolehkan:GET,POST,OPTIONS,DELETE, danPUT. Ini juga tergantung pada bagaimana Anda memanggil API Amazon EC2; misalnya, dengan menggunakan Query API, atau dengan menggunakan REST. -
Access-Control-Allow-Headers: Menunjukkan header mana yang dapat digunakan dalam permintaan aktual. Amazon EC2 menerima header apa pun dalam permintaan preflight. Jika header HTTP tidak relevan dalam permintaan yang sebenarnya, mereka diabaikan.