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.
Wyzwanie
ŁatwyTo 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
1Zasoby i czasowniki
Zasoby i URL-eTworzenie za pomocą POST4Przeglądarki, wersje i konfiguracja
Czym jest originZezwalanie na dostęp z innego originCORSStrona wywołująca APIPoćwicz samodzielnie: Edytor online Express