Menu
CoddyTech

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 sama

URL 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.

challenge icon

Tantangan

Mudah

Ini 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

Latihan sendiri: Playground Express