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-Origin
sundulan hilang kadang-kadang .
Konteks: Kami memiliki Lambda di tempat, yang didedikasikan untuk menangani OPTIONS
permintaan dan membalas dengan header CORS yang sesuai, seperti Access-Control-Allow-Origin
mencocokkan 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.origin
gagal.
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 Origin
header huruf kecil ):
curl -v -X OPTIONS --http1.1 -H 'Origin: https://www.example.com' https:
Jika Access-Control-Allow-Origin
header hilang, Anda mungkin ingin memeriksa sensitivitas huruf saat membaca Origin
header.
Bucket Policy
? Pastikan Anda memiliki metode dalam kebijakan Anda