从开放的外部API中检索价值 - visual studio - javascript - AJAX

时间:2016-04-02 10:19:32

标签: javascript ajax visual-studio

我真的很感激一些建议,我是第一次尝试从开放API中检索信息。

API详情在这里,

https://data.police.uk/docs/method/neighbourhood-locate/

我想检索'force'和'邻域'值并将它们保存到变量中,我想将它们保存为变量,因为我随后调用googlemaps来显示KML地图。我设法在我的代码的其他部分上做了很多,例如对用户输入的地址进行地理编码并检索Long / Lat,但我现在正在努力将long / lat发送到外部API并保存响应。

我已经将long / lat硬编码到这个建议请求的下面的URL中,我想我正在从API获得响应但是没有将值捕获到我的变量中。调试器显示以下响应,{“force”:“metropolitan”,“neighborhood”:“00BK17N”},下面是我的代码,

        var ForceId; //returned from the API
        var Neighbourhood; //returned from the API
        accessURL = "https://data.police.uk/api/locate-neighbourhood?q=51.500617,-0.124629"
        //Use the zip code and return all market ids in area.
        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: accessURL,
            dataType: 'jsonp',
            success: function (data) {


                ForceId.push(val.force);
                Neighbourhood.push(val.Neighbourhood)

                console.log(ForceId);
                console.log(Neighbourhood);

            }})

1 个答案:

答案 0 :(得分:0)

我犯了一些错误,在看到响应作为语法错误返回后,我调整了一些设置,我将contenttype删除为'application / JSON',并且可以在控制台日志中看到响应以包含所需的参数。我不确定这样做的含义,或者它是不是很糟糕,因为我对此非常陌生,这是我第一次尝试使用API​​。所以其他人可能会建议更好。

   function GetPolice(){
        $.ajax({
            type: "GET",
            //        contentType: "application/json; charset=utf-8",
            url: accessURL,
            dataType: 'json',
            success: function(data) {

                ForceId = data.force;
                Neighbourhood = data.neighbourhood;        

            },
        })                   

    }

如果你的新手,那么我的建议是修补'成功,错误,完成'以查看返回到consolelog的响应。从外部API看看你的“数据类型”应该是什么。同样,我不是最适合提供建议,但希望其他新人认为这有帮助。

我现在需要在上面做一个回调响应,因为它在收到响应之前完成了函数,我希望在其他地方使用另一个函数的响应,但那是一个不同的挑战:)