Apa Itu Origin
Termasuk bagian REST API dalam perjalanan Node.js di Coddy. Pelajaran 18 dari 25.
Browser biasanya mengizinkan JavaScript di halaman untuk membaca respons API dari origin-nya sendiri. Aturan same-origin ini mencegah halaman membaca data situs lain dengan bebas. CORS, Cross-Origin Resource Sharing, memungkinkan server mengizinkan origin lain melalui header respons.
Halaman browser memiliki origin: skema, host, dan portnya secara bersamaan. Path yang berbeda pada origin yang sama dapat berbagi API tanpa izin CORS. Host, skema, atau port yang berubah menghasilkan origin yang berbeda.
new URL('https://board.example.com/tasks').origin;
// 'https://board.example.com'
new URL('https://board.example.com/help').origin;
// origin yang samaURL adalah class bawaan yang membaca alamat menjadi bagian-bagian bernama. Property origin-nya tidak mencakup path dan query. Alamat halaman yang diberikan sudah ditetapkan dalam kode awal. Latihan ini membandingkan origin; langkah berikutnya akan memungkinkan server memberikan izin lintas origin.
Header Origin pada permintaan sudah berisi nilai origin ini; pelajaran berikutnya membaca header tersebut.
Tantangan
MudahIni proyek latihan kecil. Penyiapannya sudah disediakan, edit hanya exercise.js.
Kembalikan {"same":true} jika alamat yang diberikan memiliki origin yang sama dengan halaman, jika tidak, kembalikan false. Mengirim {"address":"https://board.example.com/api/tasks"} dengan POST ke /result menghasilkan true. Mengubah https menjadi http, host, atau port menghasilkan false. Alamat dalam latihan ini adalah URL absolut yang valid.
GET /result awal menggunakan contoh yang disediakan, {"address": "https://board.example.com/api/tasks"}. Gunakan POST /result dengan isi JSON untuk mencoba input lain.
Coba sendiri
const page = 'https://board.example.com/tasks';
export function exercise({ address }) {
return { same: address === page };
}
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