Javascript 地理服务器,OpenLayers3 GetFeatureInfo跨站点(不同的方法)
我认为我们都熟悉跨站点问题,但以防万一: 我在端口8080上使用OpenLayers3、GeoServer和端口80上使用Apache。我在地图上渲染了一些特征,点击我想从WMS获取特征信息。我在OpenLayers3示例中找到了代码:Javascript 地理服务器,OpenLayers3 GetFeatureInfo跨站点(不同的方法),javascript,apache,iis,openlayers-3,geoserver,Javascript,Apache,Iis,Openlayers 3,Geoserver,我认为我们都熟悉跨站点问题,但以防万一: 我在端口8080上使用OpenLayers3、GeoServer和端口80上使用Apache。我在地图上渲染了一些特征,点击我想从WMS获取特征信息。我在OpenLayers3示例中找到了代码: var viewResolution = v.getResolution(); var url = wmsSource.getGetFeatureInfoUrl( evt.coordinate, viewResolution, viewProjection, {
var viewResolution = v.getResolution();
var url = wmsSource.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, viewProjection,
{'INFO_FORMAT': 'application/json'});
if (url)
$.get(url, null, function(data)
{
});
当然,我得到:XMLHttpRequest无法加载localhost:8080/geoserver/Re。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“localhost”
我在网上搜索,找到了处理这件事的不同方法。我在问我该怎么选择。已知的事实是:托管服务器将被拥有,linux或windows未知(目前)。这也意味着我不知道是否会使用apache或IIS,所以让我们保持打开状态
我发现的选项有:
- 科尔斯
- JSONP
- apache上的代理
- URL重写IIS 7
我的0.02€。我不是Apache大师,但如果我理解正确:ProxyPass/geoserver ProxyPassReverse/geoserver这两行会暴露一些风险吗?