Chỉnh sửa webapps/geoserver/WEB-INF/web.xml
tập tin. Có hai tham chiếu đến CORS trong tệp này:
<!-- Uncomment following filter to enable CORS -->
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>
và
<!-- Uncomment following filter to enable CORS -->
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Bạn phải bỏ ghi chú cả hai khối (đó là loại bỏ <!--
và -->
khỏi khối filter
và filter-mapping
.
Sau đó, khi bạn khởi động lại Jetty, bạn có thể kiểm tra xem mọi thứ có hoạt động không bằng cách sử dụng một lệnh như:
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
mà nếu tất cả đều tốt sẽ cho kết quả như sau:
> 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>%
Cập nhật ngày 24 tháng 10 năm 2019
Không còn cần thiết phải thêm jar sau vào GeoServer (ít nhất là với các phiên bản 2.13.x trở lên) và nó sẽ gây ra lỗi . Tôi để lại ghi chú này ở đây cho những người chiến đấu với các phiên bản cũ hơn.
- Thêm Jar Jetty-Utility Servlets Jar để khớp với phiên bản của Jetty - đối với các phiên bản hiện tại của GeoServer (2.15.x), đó là 9.4.12.v20180830 , sao chép tệp này vào
webapps/geoserver/WEB-INF/lib
bên trong thư mục geoserver-2.15.0 (hoặc bất cứ nơi nào bạn giải nén zip tập tin).