перекрестный запрос источника заблокирован в openlayers - проблема с доступом к слою пространственных объектов геосервера - PullRequest
0 голосов
/ 11 апреля 2019

Я работаю над openlayers с xampp и геосервером. Мое приложение 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 Ответ

0 голосов
/ 12 апреля 2019

Добавьте прокси в вашу конфигурацию xampp, чтобы геосервер также находился по адресу localhost: 8008, чтобы вы могли получить к нему доступ через localhost: 8008 / geoserver.

ProxyPass /geoserver/ http://localhost:8080/geoserver/

Возможно, вам нужно загрузить прокси-модуль в свойКонфигурация Apache для использования опции ProxyPass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...