我们在使用javascript时使用JSONP方法来避免跨域问题。
但我无法理解逻辑。我正在使用一个返回如下结果的服务:
parseResponse({"type":"FeatureCollection",......})
我在这样的JQuery ajax请求中使用它:
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function(json) {
$(".test").html(json.type);
},
error: function(e) {
console.log(e);
}
});
这个ajax总是有效的错误功能。但请求结果将成真。如何捕获parseResponse回调函数?
答案 0 :(得分:-1)
由于服务默认返回jsonp响应,即使没有自定义回调参数,我发现最快的解决方案是从错误中获取响应文本并对其进行评估:
var url = "http://giswebservices.massgis.state.ma.us/geoserver/wms?VERSION=1.1.1&REQUEST=GetFeatureInfo&LAYERS=massgis:GISDATA.ACECS_POLY&SRS=EPSG:26986&BBOX=11830.0,776202.9449152543,348201.0,961492.0550847457&WIDTH=708&HEIGHT=390&INFO_FORMAT=text/javascript&FEATURE_COUNT=100&QUERY_LAYERS=massgis:GISDATA.ACECS_POLY&X=120&Y=109&FORMAT&STYLES=&SERVICE=WMS";
function parseResponse( data ) {
console.log( 'parse', data );
}
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function(json) {
},
error: function(e) {
eval(e.responseText);
}
});