在嵌套JQuery / json-calls时获取GET错误:更新

时间:2010-12-15 12:44:26

标签: javascript jquery json geolocation getjson

所以我要做的是,通过使用ip-lookup和geo-lookup服务,在访问者位置的地图上放置一个标记..暂时。

稍后将其用作放置在页面上的脚本,以便为用户位置提供数据库,以便他们访问我们的网站。 然后通过读取数据库,在用户所在的地图上的实际放置点。一种仪表板。

总之..

//


[ Above this i've declared a googlemap, hence the google.maps-references ]

$('#addButton').click(function(){



    var ipurl = 'http://jsonip.appspot.com/';

  //displays the users ip-adress in json-format


     $.getJSON(ipurl,function(json){

      var ip = json.ip;

//gets the ip from the above url

      var geourl='http://freegeoip.appspot.com/json/' + ip;

//gets location details from the ip in json-format


      $.getJSON(geourl,function(json){

       var myLatlng = new google.maps.LatLng(json.latitude, json.longitude);
        //set the position for the map


       var marker = new google.maps.Marker({
        position: myLatlng,
        title:"Hello World!"
       });

       marker.setMap(map);

  });

 });

});

当我试图运行它时,我想我得出的结论是,当脚本试图运行第二个JSON函数时,我会收到GET错误。它只是跳过它。

知道可能导致这种情况的原因吗?

  

修改

我已经为第二个JSON请求更改了变量。它有效。但就在我尝试将它放在我的本地机器上的时候。使用Safari。

在Chrome和Firefox中尝试过。本地和服务器上。不会工作。

FireBug中的红色标记文字:

  

GET http://example.com/json/ 200 OK 168ms

$(document).ready(function(){

    $('#addButton').click(function(){

        var ipurl = 'http://jsonip.appspot.com/';

        $.getJSON(ipurl,function(json){

            var ip = json.ip;

            var url='http://freegeoip.appspot.com/json/' + ip;

            $('#result').append(
                '<p>1: ' + ip + '</p>' + 
                '<p>2: ' + url + '</p>');

            $.getJSON(url,function(json2){

                $('#result').append('<p>' + json2.longitude + ' / ' + json2.latitude + '</p>');
            });

        });
    });
});

1 个答案:

答案 0 :(得分:0)

尝试更改第二个函数的json参数。我认为在为两个函数使用相同的参数名称时会遇到麻烦。