2013-02-16 107 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的頁面,然後所有的好去,沒有繁瑣的設置。 ;)

問候, 納斯