Subjek ini telah ditanyakan beberapa kali, tetapi saya masih tidak memahami sesuatu:
Ketika saya membaca jawaban tentang
Tidak ada header 'Access-Control-Allow-Origin'
masalah, ia mengatakan pengaturan harus ditetapkan pada server yang diminta untuk memungkinkan lintas domain: add_header 'Access-Control-Allow-Origin' '*';
.
Tapi, tolong beri tahu saya mengapa ketika bertanya dari tukang pos (yang merupakan klien), Ini berfungsi seperti pesona dan saya mendapat tanggapan dari server yang diminta?
Terima kasih
Jawaban:
Seperti yang dikomentari oleh @Musa, sepertinya alasannya adalah:
Omong-omong, inilah ekstensi chrome untuk membuatnya berfungsi di browser Anda (ini untuk chrome, tetapi Anda dapat menemukannya untuk FF atau Safari).
Lihat di sini jika Anda ingin mempelajari lebih lanjut tentang Cross-Origin dan mengapa ini berfungsi untuk ekstensi.
sumber
Jika Anda menggunakan situs web dan Anda mengisi formulir untuk mengirimkan informasi (nomor jaminan sosial Anda misalnya), Anda ingin memastikan bahwa informasi tersebut dikirim ke situs yang menurut Anda merupakan tujuan pengirimannya. Jadi browser dibuat untuk mengatakan, secara default, 'Jangan mengirim informasi ke domain selain domain yang sedang dikunjungi).
Akhirnya itu menjadi terlalu membatasi tetapi ide default masih tetap ada di browser. Jangan biarkan halaman web mengirimkan informasi ke domain yang berbeda. Tapi ini semua pengecekan browser. Chrome dan firefox, dll memiliki kode bawaan yang mengatakan 'sebelum mengirim permintaan ini, kami akan memeriksa apakah tujuannya cocok dengan halaman yang dikunjungi'.
Postman (atau CURL pada baris cmd) tidak memiliki pemeriksaan bawaan. Anda berinteraksi secara manual dengan sebuah situs sehingga Anda memiliki kendali penuh atas apa yang Anda kirim.
sumber
CORS
(Cross-Origin Resource Sharing) danSOP
(Same-Origin Policy) adalah konfigurasi sisi server yang diputuskan klien untuk diberlakukan atau tidak .Terkait dengan klien
CSRF
serangan.sumber
Meskipun semua jawaban di sini adalah penjelasan yang sangat bagus tentang apa itu cors tetapi jawaban langsung untuk pertanyaan Anda adalah karena perbedaan berikut tukang pos dan browser.
Browser: Mengirim
OPTIONS
panggilan untuk memeriksa jenis server dan mendapatkan header sebelum mengirim permintaan baru apa pun ke titik akhir API. Di mana ia memeriksaAccess-Control-Allow-Origin
. Dengan mempertimbangkan ini,Access-Control-Allow-Origin
tajuk akun hanya menentukan mana semua ASAL LINTAS diizinkan, meskipun secara default browser hanya akan mengizinkan asal yang sama.Postman: Mengirim langsung
GET
,POST
,PUT
,DELETE
dll permintaan tanpa memeriksa apa jenis server dan mendapatkan headerAccess-Control-Allow-Origin
dengan menggunakanOPTIONS
panggilan ke server.sumber
Umumnya, Postman digunakan untuk debugging dan digunakan dalam tahap pengembangan. Tetapi jika Anda ingin memblokirnya bahkan dari tukang pos, coba ini.
sumber
app.js
jika Anda menggunakannode app.js
untuk menjalankan server.Gunakan plugin browser / chrome postman untuk memeriksa CORS / SOP seperti situs web. Gunakan aplikasi desktop sebagai gantinya untuk menghindari kontrol ini.
sumber