2013-02-16 79 views
3

我正在尝试从基于Openlayers的应用程序向GeoServer发出WMS GetFeatureInfo请求。 但我碰到了交叉原点问题,因为它知道我的出处是http:localhost。OpenLayers GeoServer跨源问题

希望有人能帮助我在这里是我的设置

我已经安装的GeoServer在Windows服务器上使用IP XXXX它通过8080端口 我有我的OpenLayers应用IIS 7.5中的本地安装的访问,我指的是它使用

http://localhost/Application/Application.html 

在GeoServer的服务器我配置以下

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

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

允许在应用程序的OpenLayers我设置代理服务器设置如下

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

这仍然没有工作,我仍然得到跨起源问题。我还没有设置地理服务器 工作区基本代理网址,因为我不确定它是否相关。我需要设置吗?如果是这样的话?

如果有人解决了这个请让我知道

所有帮助表示赞赏。

+0

有两点需要注意:如果可能的话,从码头上运行自己的OpenLayers的应用程序,你没有跨域问题。如果必须从IIS运行它,则必须在IIS上设置代理,而不是在Jetty上。 – user1702401 2013-02-18 09:36:26

+0

你知道如何做到这一点。你有没有一个例子。这将是一个很大的帮助 – looccm 2013-02-18 09:52:21

回答

0

如上所述,您将需要在IIS中创建代理。你如何做到这一点可以有很大的不同,有很多方法可以做到这一点。这是一个简单的预构建代理。如果你需要它们,谷歌应该很容易。他们是一打一毛钱。

好消息是,GeoServer的2.3测试版有JSONP支持列入的GetFeatureInfo请求。 http://blog.geoserver.org/2013/01/29/geoserver-2-3-beta-released/如果您在检查出血点的时候没问题,这就是要走的路。你将不再需要代理。

-1

对于我来说,我使用PHP Curl来充当代理,没有太多的配置,只是一个PHP Curl的页面,然后所有的好去,没有繁琐的设置。 ;)

问候, 纳斯