Javascript OpenLayers代理服务器isn';t工作不正常

Javascript OpenLayers代理服务器isn';t工作不正常,javascript,openlayers,Javascript,Openlayers,我正在尝试让OpenLayers脚本工作,但看起来我犯了一个错误。有人能帮忙吗?这里是我在这一点上得到的: <body onload="init()"> <div id="map" class="smallmap"></div> <script type="text/javascript"> var lon = 12.3113999; var lat = 50.5234051; var zoom = 5; va

我正在尝试让OpenLayers脚本工作,但看起来我犯了一个错误。有人能帮忙吗?这里是我在这一点上得到的:

<body onload="init()">
<div id="map" class="smallmap"></div>
   <script type="text/javascript">
    var lon = 12.3113999;
    var lat = 50.5234051;
    var zoom = 5;
    var map, layer;
    OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";

    function init(){
        map = new OpenLayers.Map( 'map' );
        layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
        "http://ows1.geocontent.de/owsProxy/", {
                layers: 'cascade:ortho'
            },{
                proxyUrl: "/cgi-bin/proxy.cgi?url=",    

                getURL: function ( bounds ){
                    var url = OpenLayers.Layer.WMS.prototype.getURL.call( this, bounds );
                    if( this.proxyUrl && OpenLayers.String.startsWith( url, "http" ) ) {
                    url = this.proxyUrl + encodeURIComponent( url );
                }
                return url;
            }
        });

        map.addLayer(layer); 
        map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);

    }
</script>

var-lon=12.3113999;
var lat=50.5234051;
var=5;
var映射,层;
OpenLayers.ProxyHost=“/cgi-bin/proxy.cgi?url=”;
函数init(){
map=newOpenLayers.map('map');
层=新的OpenLayers.layer.WMS(“OpenLayers WMS”,
"http://ows1.geocontent.de/owsProxy/", {
图层:“层叠:正交”
},{
proxyUrl:“/cgi-bin/proxy.cgi?url=”,
getURL:函数(边界){
var url=OpenLayers.Layer.WMS.prototype.getURL.call(这个,边界);
if(this.proxyUrl&&OpenLayers.String.startsWith(url,“http”)){
url=this.proxyUrl+encodeURIComponent(url);
}
返回url;
}
});
map.addLayer(层);
map.setCenter(新OpenLayers.LonLat(lon,lat),zoom);
}
该脚本实际上使用的是客户端IP—我们如何使该脚本与服务器IP一起工作


ows1.geocontent.de是在proxy.cgi中设置的-但是我在示例页面上看到的都是没有内容的白色方块。有什么想法吗?

我认为问题在于,在OpenLayers.Layer.WMS中,url已经被编码了。然后使用encodeURIComponent再次对其进行编码,这实际上会产生奇怪的结果。所以,只需首先使用decodeURIComponent对url进行解码。因此,当您声明url时,请输入:

url=this.proxyUrl+encodeURIComponent(解码UriComponent(url))

希望这有助于