Menu
CoddyTech

Zezwalanie na dostęp z innego origin

Część sekcji API REST ścieżki Node.js w Coddy. Lekcja 19 z 25.

Strona pochodząca z jednego źródła potrzebuje uprawnień, aby odczytać odpowiedź API z innego źródła. Przeglądarka wysyła nagłówek żądania Origin. API może odpowiedzieć, podając w Access-Control-Allow-Origin dozwolone źródło.

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

Przeglądarka sprawdza ten nagłówek odpowiedzi, zanim udostępni odpowiedź stronie. API może mimo to otrzymać żądanie: CORS nie sprawdza logowania. Pasek żądania nie wymusza zasad CORS, ale karta Headers pozwala sprawdzić, co otrzymałaby przeglądarka.

req.get('origin') odczytuje nagłówek żądania Origin. Wielkość liter w nazwach nagłówków nie ma znaczenia.

challenge icon

Wyzwanie

Łatwy

To mały projekt do ćwiczeń. Konfiguracja jest gotowa; edytuj tylko server.js.

W dostarczonej trasie GET ustaw Allow-Origin tylko wtedy, gdy Origin jest równy https://board.example.com. Zachowaj odpowiedź JSON. Uruchom projekt, a następnie wyślij żądanie GET do /result z tym nagłówkiem Origin: nagłówek odpowiedzi musi mieć tę samą wartość. Inny lub brakujący Origin nie powoduje ustawienia nagłówka Allow-Origin.

W polu Headers na pasku żądania wpisz Origin: https://board.example.com. Sprawdź nagłówki odpowiedzi, aby zobaczyć uprawnienie.

Spróbuj swoich sił

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

Wszystkie lekcje w sekcji API REST

Poćwicz samodzielnie: Edytor online Express