Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Ini 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

Latihan sendiri: Playground Express