Czym jest origin
Część sekcji API REST ścieżki Node.js w Coddy. Lekcja 18 z 25.
Przeglądarka zwykle pozwala stronie odczytywać odpowiedzi API z jej własnego źródła. Ta zasada tego samego źródła uniemożliwia stronie swobodne odczytywanie danych z innej witryny. CORS, czyli współdzielenie zasobów między źródłami, pozwala serwerowi zezwolić na dostęp innemu źródłu za pomocą nagłówków odpowiedzi.
Strona w przeglądarce ma źródło: tworzą je razem jej schemat, host i port. Różne ścieżki w ramach tego samego źródła mogą korzystać ze wspólnego API bez zezwolenia CORS. Zmiana hosta, schematu lub portu oznacza inne źródło.
new URL('https://board.example.com/tasks').origin;
// 'https://board.example.com'
new URL('https://board.example.com/help').origin;
// to samo pochodzenieURL to wbudowana klasa, która odczytuje adres i rozdziela go na nazwane części. Jej właściwość origin nie obejmuje ścieżki ani zapytania. Podany adres strony jest ustalony w kodzie początkowym. To ćwiczenie porównuje źródła; w następnym kroku serwer będzie mógł udzielić im dostępu.
Nagłówek Origin żądania zawiera już wartość tego źródła; w następnej lekcji odczytasz ten nagłówek.
Wyzwanie
ŁatwyTo niewielki projekt do ćwiczeń. Jego konfiguracja jest już gotowa; edytuj tylko exercise.js.
Zwróć {"same":true}, gdy podany adres ma ten sam origin co strona; w przeciwnym razie zwróć false. Wysłanie {"address":"https://board.example.com/api/tasks"} metodą POST do /result daje true. Zmiana https na http, hosta lub portu daje false. Adresy w tym ćwiczeniu są prawidłowymi bezwzględnymi adresami URL.
Początkowe GET /result używa podanego przykładu {"address": "https://board.example.com/api/tasks"}. Użyj POST /result z treścią żądania w formacie JSON, aby wypróbować inne dane wejściowe.
Spróbuj swoich sił
const page = 'https://board.example.com/tasks';
export function exercise({ address }) {
return { same: address === page };
}
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