Mam ArcGIS 10.1 zainstalowany z adapterem sieciowym dla IIS. Dodałem plik konfiguracyjny do katalogu głównego IIS7, aby włączyć udostępnianie zasobów między źródłami pochodzenia (CORS) zgodnie z tą stroną. Wrzuciłem serwer ArcGIS z włączonymi corsami do listy domyślnych serwerów cors jak na tej stronie:
esri.config.defaults.io.corsEnabledServers.push("vmagstenone")).
Jednak gdy moja aplikacja JavaScript hostowana na vmagsten wysyła żądanie do serwera GIS (vmagstenone), pojawia się błąd
"Origin http://vmagsten is not allowed by Access-Control-Allow-Origin.".
Edycja: A warstwa obiektów nie ładuje się. Próbowałem również załadować warstwę dynamiczną i to też kończy się niepowodzeniem z tym samym błędem _557 (patrz obraz)
Edycja: Nie powinienem widzieć tego błędu, ponieważ powyższe kroki powinny oznaczać, że serwer obsługuje cross origin. To stwierdzenie esri, że ten błąd można zignorować, nie ma zastosowania w tym przypadku, ponieważ ten serwer powinien obsługiwać cors. Oznacza to, że pierwszy błąd serwera ESRI można zignorować.
!
Edycja: oto przykładowa odpowiedź z zapytania na tej warstwie pokazująca, że odpowiedź ma kontrolę dostępu-Allow-Origin
!
źródło
Odpowiedzi:
Wspomniałeś, że pojawia się błąd, ale czy usługa faktycznie nie ładuje się?
Pytam, gdy zauważyłem ten post na forach Esri, który stwierdza:
Zakładam, że dzieje się tak również w innych konsolach przeglądarki?
Jeśli nie, możesz rzucić gdzieś (lub wysłać mi e-mailem) dziennik Fiddlera lub plik .HAR i odpowiednio zmodyfikować tę odpowiedź.
źródło
Podczas gdy odpowiedź nie zawiera
Access-Control-Allow-Origin: *
nagłówka, zawiera równieżX-Frame-Options: SAMEORIGIN
iX-XSS-Protection: 1; mode=block
nagłówki. Są to nagłówki prefiksów X, które są niestandardowe , więc nie jestem w 100% pewien, czy twoja przeglądarka honoruje je nad nagłówkiem zezwalającym.Możesz użyć narzędzia takiego jak Fiddler do dodawania i usuwania nagłówków z żądań przeglądarki; może to pomóc w śledzeniu tego, co się dzieje.
źródło
Oto, co działało dla mnie w IIS 8.0. Może być inaczej w innych wersjach IIS.
Usuń plik
customHeaders
z katalogu głównego witrynyweb.config
lub usuńweb.config
go całkowicie.Następnie przejdź do
ApplicationHost.config
w IIS Configuration Manager dlaarcgis
aplikacji i dodajAccess-Control-Allow-Origin
nazwę i*
wartość docustomHeaders
.źródło
Nie znam podziału zasobów między źródłami.
Korzystam z zasad międzydomenowych.
Czy masz to również skonfigurowane?
źródło
To, co w końcu zadziałało, to dodanie do strony ROOT, a NIE aplikacji dla adaptera sieciowego . Czy ma sens? Nie do mnie. Ale to zadziałało dla mnie.
EDYCJA: Powinien przejść do pliku proxy DotNet o nazwie Web.config.
źródło