geoserver jsonp 跨域获取数据
修改web.xml中的配置
<context-param>
<param-name>ENABLE_JSONP</param-name>
<param-value>true</param-value>
</context-param>
var tiled_01GKDw = new ol.layer.Tile({
visible: true,
source: new ol.source.TileWMS({
url: 'http://geoserver.zhatu.jinan.czczh.cn/geoserver/ztc/wms',
params: {
'FORMAT': 'image/png8',
'VERSION': '1.1.1',
tiled: true, // 使用瓦片图
"LAYERS": 'ztc:ztc_road', // 使用的图层
"exceptions": 'application/vnd.ogc.se_inimage',
},
projection: 'EPSG:4326'
})
});
var map = new ol.Map({
target: 'map',
maxResolution: "auto",
layers: [
new ol.layer.Tile({
source: new ol.source.OSM(),
projection: 'EPSG:4326'
}),
tiled_01GKDw,
],
view: new ol.View({
center: ol.proj.fromLonLat([116.98, 36.67]),
zoom: 10,
})
});
function getResult(res) {
// jsonp的回调函数 geoserver默认 回调函数名称为parseResponse
console.log("getResult")
console.log(res);
}
map.on('singleclick', function (evt) {
var view = map.getView();
var viewResolution = view.getResolution();
var source = tiled_01GKDw.getSource();
var url = source.getGetFeatureInfoUrl(
evt.coordinate,
viewResolution,
view.getProjection(), {
'INFO_FORMAT': 'text/javascript', // JSONP 所需要的格式
"format_options": "callback:getResult" // callback:指定jsonp响应格式的回调函数名称(默认为parseResponse)
});
console.log(url);
$.ajax({
url: url,
dataType: 'jsonp', // 使用jsonp
jsonpCallback: 'getResult' // 与format_options一致
});
});