Akar penyebab lain dari masalah ini mungkin adalah perbedaan antara HTTP / 1.1 dan HTTP / 2.
Gejala: Beberapa pengguna, tidak semuanya, dilaporkan mendapatkan kesalahan CORS saat menggunakan Perangkat Lunak kami.
Masalah: The Access-Control-Allow-Originsundulan hilang kadang-kadang .
Konteks: Kami memiliki Lambda di tempat, yang didedikasikan untuk menangani OPTIONSpermintaan dan membalas dengan header CORS yang sesuai, seperti Access-Control-Allow-Originmencocokkan yang masuk daftar putih Origin.
Solusi: API Gateway tampaknya mengubah semua header menjadi huruf kecil untuk panggilan HTTP / 2, tetapi mempertahankan kapitalisasi untuk HTTP / 1.1. Ini menyebabkan akses event.headers.origingagal.
Periksa apakah Anda juga mengalami masalah ini:
Dengan asumsi API Anda terletak di https://api.example.com, dan front-end Anda di https://www.example.com. Menggunakan CURL, buat permintaan menggunakan HTTP / 2:
curl -v -X OPTIONS -H 'Origin: https://www.example.com' https:
Output respon harus menyertakan tajuk:
< Access-Control-Allow-Origin: https://www.example.com
Ulangi langkah yang sama menggunakan HTTP / 1.1 (atau dengan Originheader huruf kecil ):
curl -v -X OPTIONS --http1.1 -H 'Origin: https://www.example.com' https:
Jika Access-Control-Allow-Originheader hilang, Anda mungkin ingin memeriksa sensitivitas huruf saat membaca Originheader.
Bucket Policy? Pastikan Anda memiliki metode dalam kebijakan Anda