Rumah >hujung hadapan web >tutorial js >Mengendalikan Masalah CORS di JavaScript: Penyelesaian Praktikal Diterangkan
CORS, atau perkongsian sumber silang asal, adalah mekanisme yang menyekat laman web daripada membuat permintaan ke domain, protokol, atau pelabuhan yang berbeza daripada yang mereka berasal dari. Sekatan ini penting untuk keselamatan, menghalang laman web yang berniat jahat daripada mengakses data sensitif dari domain lain tanpa kebenaran yang betul. Walau bagaimanapun, ia juga boleh memberikan cabaran apabila membina aplikasi web yang perlu berinteraksi dengan API luaran atau sumber. Kaedah yang paling biasa dan disukai adalah untuk mengkonfigurasi pelayan dengan betul untuk membolehkan permintaan dari asal -usul khusus anda. Ini melibatkan menetapkan tajuk
yang sesuai pada respons pelayan. Jika anda mengawal pelayan, anda perlu menambah tajuk ini untuk membenarkan permintaan dari domain aplikasi anda (atau domain tertentu jika anda memerlukan lebih banyak kawalan berbutir). Sebagai contoh, jika permohonan anda dihoskan di, anda akan menetapkan tajuk ke Access-Control-Allow-Origin
. Anda juga boleh menggunakan Wildcards (https://mywebapp.com
) tetapi ini secara umumnya tidak digalakkan atas sebab -sebab keselamatan kerana ia membolehkan asal -usul untuk mengakses sumber pelayan anda. Tajuk lain seperti Access-Control-Allow-Origin: https://mywebapp.com
, *
, dan Access-Control-Allow-Methods
dapat memperbaiki dasar CORS untuk menentukan kaedah HTTP, tajuk, dan sama ada kuki harus dimasukkan dalam permintaan. Aplikasi JavaScript anda akan menghantar permintaan ke pelayan proksi anda sendiri, yang kemudiannya akan menghantar permintaan kepada asal sasaran. Oleh kerana permintaan semuanya berasal dari domain yang sama (pelayan proksi anda), sekatan CORS dilangkau. Walau bagaimanapun, ini menambah kerumitan dan memperkenalkan titik kegagalan tambahan. Selain itu, ia mungkin tidak sesuai untuk semua senario, terutamanya apabila berurusan dengan data sensitif. Akhirnya, dengan menggunakan perkhidmatan pihak ketiga atau gerbang API yang mengendalikan CORS untuk anda adalah satu lagi pilihan yang sesuai, terutamanya berguna jika anda tidak mempunyai kawalan ke atas pelayan sasaran. Kaedah yang diterangkan di atas tidak benar -benar memintas CORS; Sebaliknya, mereka bekerja Access-Control-Allow-Headers
dalam rangka kerja CORS dengan betul mengkonfigurasi pelayan untuk membenarkan permintaan anda. Percubaan untuk mengelakkan CORS melalui teknik seperti JSONP (JSON dengan padding) umumnya tidak digalakkan kerana ia mempunyai batasan keselamatan dan tidak berfungsi dengan semua kaedah HTTP. Access-Control-Allow-Credentials
Cara yang paling berkesan untuk mengendalikan COR adalah untuk memastikan pelayan dengan betul melaksanakan dasar CORS untuk membolehkan asal aplikasi anda. Ini adalah satu -satunya penyelesaian yang benar -benar teguh dan selamat. Sekiranya anda tidak mengawal pelayan, pertimbangkan untuk menggunakan proksi atau perkhidmatan pihak ketiga untuk menengahi permintaan. Punca-punca biasa termasuk:
Pengepala CORS-Side Server yang salah dikonfigurasi:
Ini adalah punca yang paling kerap. Header yang hilang atau tidak betul*
, tentukan asal -usul yang tepat yang dibenarkan untuk mengakses sumber anda. Ini meningkatkan keselamatan. Pastikan pelayan anda bertindak balas dengan betul kepada permintaan preflight ini. XMLHTTPREQUEST: Atas ialah kandungan terperinci Mengendalikan Masalah CORS di JavaScript: Penyelesaian Praktikal Diterangkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!