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

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

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

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应用程序中,我将Proxy Server设置如下
OpenLayers.ProxyServer = "http://x.x.x.x:8080/geoserver/rest/proxy?url="

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

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

感谢所有帮助。

最佳答案

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

  • http://netproxy.codeplex.com/

  • 好消息是,GeoServer 2.3 Beta支持GetFeatureInfo请求的JSONP支持。 http://blog.geoserver.org/2013/01/29/geoserver-2-3-beta-released/如果您可以检查出前沿,可以采用这种方法。您将不再需要代理。

    关于proxy - OpenLayers GeoServer跨源发行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14911113/

    10-11 01:30