Mengizinkan Origin Lain
Termasuk bagian REST API dalam perjalanan Node.js di Coddy. Pelajaran 19 dari 25.
Halaman pada satu origin memerlukan izin untuk membaca respons API dari origin lain. Browser mengirim header permintaan Origin. API dapat merespons dengan Access-Control-Allow-Origin yang menyebutkan origin yang diizinkan.
if (req.get('origin') === 'https://shop.example.com') {
res.set('Access-Control-Allow-Origin', 'https://shop.example.com');
}Browser memeriksa header respons ini sebelum menampilkan respons kepada halaman. API mungkin tetap menerima permintaan: CORS bukan pemeriksaan login. Bilah permintaan tidak menerapkan CORS, tetapi tab Headers memungkinkan kamu memeriksa apa yang akan diterima browser.
req.get('origin') membaca header Origin pada permintaan. Nama header tidak membedakan huruf besar dan kecil.
Tantangan
MudahIni adalah proyek latihan kecil. Penyiapannya sudah disediakan, edit hanya server.js.
Di rute GET yang disediakan, tetapkan Allow-Origin hanya jika Origin sama dengan https://board.example.com. Pertahankan respons JSON. Jalankan, lalu kirim GET /result dengan header Origin tersebut: header respons harus cocok. Origin yang berbeda atau tidak ada tidak akan mendapatkan header Allow-Origin.
Di kolom Headers pada bilah permintaan, masukkan Origin: https://board.example.com. Periksa header respons untuk melihat izinnya.
Coba sendiri
import express from 'express';
const app = express();
app.get('/result', (req, res) => {
res.json({ ok: true });
});
app.listen(3000);
Semua pelajaran di REST API
1Sumber Daya dan Kata Kerja
Sumber Daya dan URLMembuat dengan POST4Peramban, Versi, dan Konfigurasi
Apa Itu OriginMengizinkan Origin LainCORSHalaman yang Memanggil APILatihan sendiri: Playground Express