Menu
CoddyTech

Başka Bir Origin'e İzin Verme

Coddy'nin Node.js Journey'sinin REST API'leri bölümünün bir parçası. Ders 19 / 25.

Bir kaynağa ait sayfanın başka bir kaynaktan gelen API yanıtını okuyabilmesi için izin gerekir. Tarayıcı, Origin istek başlığını gönderir. API, izin verilen kaynağı belirten Access-Control-Allow-Origin başlığıyla yanıt verebilir.

if (req.get('origin') === 'https://shop.example.com') {
    res.set('Access-Control-Allow-Origin', 'https://shop.example.com');
}

Tarayıcı, yanıtı sayfaya göstermeden önce bu yanıt başlığını kontrol eder. API yine de isteği alabilir: CORS bir oturum açma denetimi değildir. İstek çubuğu CORS’u uygulamaz, ancak Headers sekmesi tarayıcının ne alacağını incelemeni sağlar.

req.get('origin'), isteğin Origin başlığını okur. Başlık adları büyük/küçük harfe duyarlı değildir.

challenge icon

Görev

Kolay

Bu küçük bir alıştırma projesidir. Kurulumu hazırdır; yalnızca server.js dosyasını düzenle.

Sağlanan GET rotasında, Origin yalnızca https://board.example.com değerine eşitse Allow-Origin başlığını ayarla. JSON yanıtını koru. Çalıştır, ardından bu Origin başlığıyla GET /result isteği gönder: yanıt başlığı aynı olmalıdır. Farklı veya eksik bir Origin için Allow-Origin başlığı gönderilmez.

İstek çubuğundaki Headers alanına Origin: https://board.example.com yaz. İzni görmek için yanıt başlıklarını incele.

Kendin dene

import express from 'express';
const app = express();
app.get('/result', (req, res) => {
    res.json({ ok: true });
});
app.listen(3000);

REST API'leri bölümündeki tüm dersler

Kendi başına pratik yap: Express playground