Javascript OpenLayers代理服务器isn';t工作不正常
我正在尝试让OpenLayers脚本工作,但看起来我犯了一个错误。有人能帮忙吗?这里是我在这一点上得到的: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
<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))代码>
希望这有助于