sunting 2018-09-13 : menambahkan beberapa ketentuan tentang permintaan pra-penerbangan ini dan cara menghindarinya di akhir tanggapan ini.
OPTIONS
permintaan adalah apa yang kami sebut pre-flight
permintaan Cross-origin resource sharing (CORS)
.
Mereka diperlukan ketika Anda membuat permintaan di berbagai sumber yang berbeda dalam situasi tertentu.
Permintaan pra-penerbangan ini dibuat oleh beberapa browser sebagai langkah keamanan untuk memastikan bahwa permintaan yang dilakukan dipercaya oleh server. Artinya server memahami bahwa metode, asal, dan tajuk yang dikirim berdasarkan permintaan aman untuk ditindaklanjuti.
Server Anda tidak boleh mengabaikan tetapi menangani permintaan ini setiap kali Anda mencoba melakukan permintaan lintas asal.
Sumber daya yang bagus dapat ditemukan di sini http://enable-cors.org/
Cara untuk menangani ini agar nyaman adalah dengan memastikan bahwa untuk setiap jalur dengan OPTIONS
metode server mengirim respons dengan header ini
Access-Control-Allow-Origin: *
Ini akan memberi tahu browser bahwa server bersedia menjawab permintaan dari asal mana pun.
Untuk informasi lebih lanjut tentang cara menambahkan dukungan CORS ke server Anda, lihat bagan alur berikut
http://www.html5rocks.com/static/images/cors_server_flowchart.png
sunting 2018-09-13
OPTIONS
Permintaan CORS dipicu hanya dalam beberapa kasus, seperti yang dijelaskan dalam dokumen MDN :
Beberapa permintaan tidak memicu preflight CORS. Itu disebut "permintaan sederhana" dalam artikel ini, meskipun spec Fetch (yang mendefinisikan CORS) tidak menggunakan istilah itu. Permintaan yang tidak memicu preflight CORS — yang disebut “permintaan sederhana” —adalah permintaan yang memenuhi semua kondisi berikut:
Satu-satunya metode yang diizinkan adalah:
Terlepas dari tajuk yang ditetapkan secara otomatis oleh agen pengguna (misalnya, Koneksi, Agen-Pengguna, atau tajuk lainnya dengan nama yang ditentukan dalam spesifikasi Ambil sebagai "nama tajuk terlarang"), tajuk satu-satunya yang diizinkan untuk menjadi set manual adalah yang ditentukan oleh spec Fetch sebagai “header-permintaan safelisted-CORS”, yaitu:
- Menerima
- Bahasa Terima
- Konten-Bahasa
- Jenis-Konten (tetapi perhatikan persyaratan tambahan di bawah)
- DPR
- Downlink
- Simpan-Data
- Lebar-viewport
- Lebar
Satu-satunya nilai yang diizinkan untuk header Jenis Konten adalah:
- application / x-www-form-urlencoded
- multipart / formulir-data
- teks / polos
Tidak ada pendengar acara yang terdaftar pada objek XMLHttpRequestUpload apa pun yang digunakan dalam permintaan; ini diakses menggunakan properti XMLHttpRequest.upload.
Tidak ada objek ReadableStream yang digunakan dalam permintaan.