#cors #openlayers #postgis #geoserver
#cors #openlayers #postgis #геосервер
Вопрос:
Я работаю над openlayers с помощью xampp и geoserver. Мое приложение openlayer запущено по URL http://localhost:8008 Я пытаюсь получить доступ к URL-адресу http://localhost:8080/geoserver/workspace
Но я не могу получить к нему доступ. В консоли браузера у меня следующая ошибка. Заблокирован запрос перекрестного происхождения: политика того же источника запрещает чтение удаленного ресурса в https://localhost:8080/geoserver/workspace/ows ?. (Причина: запрос CORS не удался).. пожалуйста, помогите мне с этим
Я попытался применить фильтр в web.xml в tomcat и geoserver со следующими
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
also in geoserver webinf/web.xml I added
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
<init-param>
<param-name>chainPreflight</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>allowedMethods</param-name>
<param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
</init-param>
<init-param>
<param-name>allowedHeaders</param-name>
<param-value>*</param-value>
</init-param>
</filter>
Комментарии:
1. Думаю, я решил аналогичную проблему, используя обратный прокси. Я использовал IIS, поэтому мое решение вам не поможет, но это может быть что-то, на что стоит обратить внимание. Вы можете найти полезными сообщения, подобные следующим: gis.stackexchange.com/questions/37514 /…
Ответ №1:
Добавьте прокси-сервер в свою конфигурацию xampp, чтобы геосервер также находился на localhost: 8008, чтобы вы могли получить к нему доступ через localhost: 8008 / geoserver.
ProxyPass /geoserver/ http://localhost:8080/geoserver/
Возможно, вам нужно загрузить прокси-модуль в конфигурацию Apache, чтобы использовать эту ProxyPass
опцию.