Tomcat中的地理服务器跨域



我的Geoserver运行在地址http://localhost:8888的Tomcat上,JSP应用程序运行在地址为http://localhost:8080的带有OpenLayers API的Tomcat上。

我需要用OpenLayers向托管在Tomcat 8888端口的Geoserver发出WFS请求,假设我的应用程序在8080端口上。

是否可能发出跨域请求?因为我的请求被地理服务器拒绝了。

是的,可以对geoserver进行跨域请求。但是,您需要拥有或编写代理脚本或服务。在旧版本的Geoserver中,有一个代理服务。然而,这在这里对您没有帮助,因为您需要让服务在应用程序正在运行的同一tomcat实例中运行,该实例需要跨域访问。

您可以使用jsp脚本来执行您需要的操作。我过去用过一个看起来像这样的。请注意,这种代理脚本具有安全隐患。给出的示例没有任何安全预防措施,熟练的黑客可以使用它对您的网站进行脚本攻击。如果这将是一个面向生产服务器或公共互联网的服务器,请设置一些过滤器,限制代理脚本可以访问的地点和内容。

为了使用这个脚本,您需要修改jsp应用程序查找地理服务器应用程序的位置并对其进行更改

String Geoserver_Address = "http://localhost:8888/geoserver/ows"

你会放

String Geoserver_Address = "http://localhost:8080/Application/ProxyScript.jsp?http://localhost:8888/geoserver/ows

同样值得注意的是,造成跨域限制的不是Geoserver,而是大多数浏览器内置的安全功能。在尝试跨域加载代码或不支持的格式时,这是一个相当常见的问题。请参阅此处和此处了解更多信息。

相关内容

  • 没有找到相关文章

最新更新