Menu
CoddyTech

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 pochodzenie

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

challenge icon

Wyzwanie

Łatwy

To 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

Poćwicz samodzielnie: Edytor online Express