Czym jest Cors?
CORS to standard W3C, co oznacza "Cross-source resource sharing" (współdzielenie zasobów międzygenezóralnych). Pozwala przeglądarce na wysyłanie żądań XMLHttpRequest do serwerów międzygenezaryjnych, co pozwala na ograniczenie, że AJAX może być używany wyłącznie jednorodnie.
1. Wprowadzenie
CORS wymaga zarówno wsparcia dla przeglądarki, jak i serwera. Obecnie wszystkie przeglądarki obsługują tę funkcję, a przeglądarka IE nie może być niższa niż IE10.
Cały proces komunikacji CORS jest realizowany automatycznie przez przeglądarkę i nie wymaga udziału użytkownika. Dla programistów komunikacja CORS nie różni się od homolognej komunikacji AJAX, a kod jest dokładnie taki sam. Gdy przeglądarka wykryje, że żądanie AJAX przechodzi przez źródło, automatycznie doda dodatkowe informacje w nagłówku, a czasem jeszcze jedno żądanie, ale użytkownik tego nie poczuje.
Dlatego kluczem do osiągnięcia komunikacji CORS jest serwer. Dopóki serwer implementuje interfejs CORS, może komunikować się między źródłami.
W rzeczywistości programy serwerów WWW (takie jak ASP.NET czy PHP itp.) nie potrafią rozróżnić i nie będą zarządzać, czy przychodzące żądanie HTTP jest międzydomenowym żądaniem Ajax.CORS został zaprojektowany, aby rozwiązać ten problem, a niestandardowy standard CORS W3C daje przeglądarkom mechanizm umożliwiający wykonywanie żądań Ajaxu między domenami.
2: Natywny kod żądania JS Ajax
Ponieważ nie chcę odwoływać się do jQuery, zapakowałem następujące metody za pomocą js, w następujący sposób:
Ajax żąda testów interfejsu i znajduje następujący błąd:
Po trzecie: Ustaw metodę kontrolera umożliwiającą podział między domenami
Tak sobieWszyscy są dopuszczeniMetoda kontrolera lub API jest międzydomenowa, w pliku web.configsystem.webServerPoniżej węzła dodana jest następująca konfiguracja:
Powyższe nie jest wynikiem, którego oczekiwaliśmy! Jeśli chcemy, aby dostęp do jednego z naszych interfejsów między domenami była dostępna tylko jedna domena, musimy zdefiniować funkcję wyglądającą tak:
Kod do ustawiania uprawnień dostępu międzydomenowego to ten akapit: HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
Charakterystyki ustawiamy na podstawie metody sterującej następująco:
Ponownie inicjujemy żądanie Ajax, a wynik pokazano poniżej:
Zasoby interfejsu API z naszych innych stron internetowych są z powodzeniem dostępne.
(Koniec)
|