Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问angularjs回调结果jsonp_Javascript_Jquery_Json_Angularjs - Fatal编程技术网

Javascript 如何访问angularjs回调结果jsonp

Javascript 如何访问angularjs回调结果jsonp,javascript,jquery,json,angularjs,Javascript,Jquery,Json,Angularjs,我有一个WMS查询,url如下 此url返回JSON结果parseResponse(…JSON… 我想创建angularjs$HTTPJSONP,但它不起作用 function appCtrl($scope, $http){ function parseResponse(data) { $scope.data = data } var httpOptions = { url: "http://giswebservices.massgi

我有一个WMS查询,url如下

此url返回JSON结果
parseResponse(…JSON…

我想创建angularjs$HTTPJSONP,但它不起作用

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”,但我定义了该函数

以下是如何使用
jsonp
访问AngularJS回调结果:


我删除了url上的一个重要参数(它是
REQUEST=GetFeatureInfo
),并将其包含在
jsonp
函数调用的params参数中,以显示
params
参数是如何传递的示例。

您可以尝试在params中设置格式选项,因为angularjs的默认回调函数名是JSON\U回调

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'
    },
};

您正在尝试执行http.get吗?或者我是如何解释的,尝试ping一个服务器并得到一个json?我认为你不应该把你的问题修改成一个全新的问题,否则我的答案就没有意义了。你能回复并问一个新问题吗?如果对你有帮助的话,你能标记一个正确的答案吗?我怎样才能将查询字符串分离为json参数和send?你为什么定义window.parseResponse?实际上,这里有一篇文章展示了你如何在jsonp调用中指定参数,我定义了window.parseResponse以从json回调中传递数据,因为它被包装在parseResponse函数中。我以为您只是想要JSON?您的解决方案很好,我尝试了这个方法,但无法捕获回调,成功函数不起作用
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'
    },
};