如何访问angularjs回调结果jsonp
how to access angularjs callback result jsonp
我有一个url的WMS查询。
http://giswebservices.massgis.state.ma.us/geoserver/wms?VERSION=1.1.1&请求= GetFeatureInfo&层= massgis: GISDATA.ACECS_POLY& SRS = EPSG: 26986和BBOX = 11830.0, 776202.9449152543, 348201.0, 961492.0550847457,宽度= 708,身高= 390,INFO_FORMAT = text/javascript& FEATURE_COUNT = 10, QUERY_LAYERS = massgis: GISDATA.ACECS_POLY& X = 120, Y = 109, FORMAT&服务风格=,= WMS
这个url返回JSON结果parseResponse( ...json...)
我想创建angularjs $http jsonp,但是它不工作。
function appCtrl($scope, $http){
function parseResponse(data) {
$scope.data = data
}
var httpOptions = {
url: "http://giswebservices.massgis.state.ma.us/geoserver/wms?VERSION=1.1.1&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=10&QUERY_LAYERS=massgis:GISDATA.ACECS_POLY&X=120&Y=109&FORMAT&STYLES=&SERVICE=WMS",
method: "JSONP",
params : {
REQUEST: 'GetFeatureInfo',
},
};
$http(httpOptions).
success(function(data){
console.log(data);
$scope.data = data;
}).
error(function(data){
console.log(data);
});
}
这会给出错误"parseResponse is not defined"但是我定义了这个函数
你可以尝试在params中设置format_options,因为angularjs默认的回调函数名称是JSON_CALLBACK
var httpOptions = {
url: "http://giswebservices.massgis.state.ma.us/geoserver/wms?VERSION=1.1.1&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=10&QUERY_LAYERS=massgis:GISDATA.ACECS_POLY&X=120&Y=109&FORMAT&STYLES=&SERVICE=WMS",
method: "JSONP",
params : {
REQUEST: 'GetFeatureInfo',
format_options: 'callback: JSON_CALLBACK'
},
};
下面是如何使用jsonp
访问AngularJS回调结果:
function WMSCtrl($scope, $http) {
$scope.nums = [1,2,3]
$scope.data = null;
$scope.get_data = function() {
var url2 = 'http://giswebservices.massgis.state.ma.us/geoserver/wms?VERSION=1.1.1&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=10&QUERY_LAYERS=massgis:GISDATA.ACECS_POLY&X=120&Y=109&FORMAT&STYLES=&SERVICE=WMS'
$http.jsonp(url2, {params : {REQUEST: 'GetFeatureInfo'}});
}
window.parseResponse = function(data) {
$scope.data = data
}
}
我在url上取下了一个重要的参数(这是REQUEST=GetFeatureInfo
),并将其包含在jsonp
函数调用的params参数中,以显示如何传递params
参数的示例。
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- Angularjs使用“;这个“;promise内的关键字回调
- 在AngularJS服务中使用$http回调
- 嵌套回调范围和rootScope AngularJS
- AngularJS Protractor:正在等待服务回调
- AngularJS - ngRoute - 视图加载完成后的回调
- AngularJS指令未在变更回调时启动
- 如何处理AngularJS服务中的回调
- 如何访问回调函数之外的异步angularjs服务数据
- AngularJS tokenWrapper-错误的回调参数
- 在回调AngularJS ng-click样式中执行fn(param1,param2)
- AngularJs在app.config中的回调中配置路由
- Angularjs $http.get 不调用回调
- 如何在回调函数中获取 AngularJS 中 $scope 变量的当前状态
- AngularJS回调,复制$http的行为.将缓存转化为承诺
- AngularJS:回调定义正确
- Angularjs:回调到父控制器
- 如何访问angularjs回调结果jsonp
- 在AngularJS回调中使用$scope
- 使用AngularJS回调的Google OAuth2登录