OpenLayers GeoServer跨源发行

问题描述 投票:3回答:3

我正在尝试从基于openlayers的应用程序向GeoServer发出WMS GetFeatureInfo请求。但是我遇到了跨源问题,因为它知道我的源是http:localhost。

希望有人可以帮助我,这是我的设置

我在IP地址为x.x.x.x的Windows服务器上安装了地理服务器,可以通过端口8080访问它。我在IIS 7.5中本地安装了openlayers应用程序,并使用

进行引用
http://localhost/Application/Application.html

在GeoServer服务器上,我配置了以下内容

GeoServer作为GeoSuite v2.2的一部分安装,它使用Jetty Web服务。GeoServer Proxy Extension已安装。 (http://geoserver.org/display/GEOS/GeoServer+Proxy+Extension)。

我已将其余代理设置为使用匿名身份验证。我必须在config.xml中执行此操作,因为此版本的GeoServer管理中存在一个错误,该错误会阻止保存身份验证过滤器。我还确保在rest.properties文件中将其配置为允许匿名身份验证。在代理配置中,我允许localhost

在openlayers应用程序中,我按如下设置代理服务器设置

OpenLayers.ProxyServer = "http://x.x.x.x:8080/geoserver/rest/proxy?url="

这仍然无法正常工作,我仍然遇到跨源问题。我尚未设置地理服务器工作区基本代理网址,因为我不确定是否相关。我需要设置这个吗?如果是,该怎么办?

如果有人解决了这个问题,请告诉我

感谢所有帮助。

proxy cross-domain gis openlayers geoserver
3个回答
0
投票

如上所述,您将需要在IIS中创建代理。您的操作方式可能相差很大,有很多方法可以做到。为简化起见,这是一个预先构建的代理。如果需要,可以更轻松地搜索更多的Google。他们是一角钱。

好消息是,GeoServer 2.3测试版具有对GetFeatureInfo请求的JSONP支持。 http://blog.geoserver.org/2013/01/29/geoserver-2-3-beta-released/如果您可以检查出血边缘,这就是方法。您将不再需要代理。


0
投票

仅将Base Proxy URL设置为用户从外部使用的那个,因此从geoserver传递的所有生成的内容应仅使用此库提供链接,从而避免了跨域问题。

((在您的情况下,您可能是计算机中唯一的(dev])用户=>将其设置为Base Proxy URL ...也可以将其设置为计算机的IP或DNS名称)测试方式)

((对于prod安装,如果您不想将其保护在外部,则应该类似于http://localhost:8080/geoserverhttps://example.com/geoserver


-1
投票

对我来说,我使用PHP Curl充当代理,无需太多配置,只需要一页PHP Curl,那么一切顺利,没有繁琐的设置。 ;)

关于,nas

© www.soinside.com 2019 - 2024. All rights reserved.