Відредагуйте webapps/geoserver/WEB-INF/web.xml
файл. У цьому файлі є дві посилання на CORS:
<!-- Uncomment following filter to enable CORS -->
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>
і
<!-- Uncomment following filter to enable CORS -->
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Ви повинні скаментувати обидва блоки (тобто видалити, <!--
і -->
з блоків filter
та filter-mapping
.
Потім, перезавантаживши Jetty, ви можете перевірити, що все працює за допомогою команди типу:
curl -v -H "Origin: http://example.com" http://astun-desktop:9080/geoserver/wfs\?service\=WFS\&version\=2.0.0\&request\=GetFeature\&typenames\=sf:bugsites\&filter\=%3Cfes:Filter%20xmlns:fes\=%22http://www.opengis.net/fes/2.0%22%3E%3Cfes:ResourceId%20rid\=%22bugsites.3%22/%3E%3C/fes:Filter%3E
яка, якщо все добре, дасть такий результат, як:
> User-Agent: curl/7.35.0
> Host: astun-desktop:9080
> Accept: */*
> Origin: http://example.com
>
< HTTP/1.1 200 OK
< Access-Control-Allow-Origin: http://example.com
< Access-Control-Allow-Credentials: true
< Access-Control-Expose-Headers:
< Content-Type: text/xml; subtype=gml/3.2
< Content-Disposition: inline; filename=geoserver-GetFeature.text
< Transfer-Encoding: chunked
* Server Jetty(9.2.13.v20150730) is not blacklisted
< Server: Jetty(9.2.13.v20150730)
<
* Connection #0 to host astun-desktop left intact
<?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sf="http://www.openplans.org/spearfish" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" numberMatched="1" numberReturned="1" timeStamp="2017-07-30T15:58:31.423Z" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://astun-desktop:9080/geoserver/schemas/wfs/2.0/wfs.xsd http://www.openplans.org/spearfish http://astun-desktop:9080/geoserver/wfs?service=WFS&version=2.0.0&request=DescribeFeatureType&typeName=sf%3Abugsites http://www.opengis.net/gml/3.2 http://astun-desktop:9080/geoserver/schemas/gml/3.2.1/gml.xsd"><wfs:member><sf:bugsites gml:id="bugsites.3"><sf:the_geom><gml:Point srsName="urn:ogc:def:crs:EPSG::26713" srsDimension="2"><gml:pos>590529 4914625</gml:pos></gml:Point></sf:the_geom><sf:cat>3</sf:cat><sf:str1>Beetle site</sf:str1></sf:bugsites></wfs:member></wfs:FeatureCollection>%
Оновлення 24 жовтня 2019 року
Більше не потрібно додавати наступну банку до GeoServer (принаймні, з версіями 2.13.x та пізніших версій), і це призведе до помилки . Я залишаю тут цю замітку для людей, які борються зі старими версіями.
- Додайте Jetty-Utility Servlets Jar, щоб відповідати версії Jetty - для поточних версій GeoServer (2.15.x) це 9.4.12.v20180830 , скопіюйте це
webapps/geoserver/WEB-INF/lib
всередині каталогу geoserver-2.15.0 (або куди ви розпакували поштовий індекс файл).