2010-12-15 58 views
0

Donc, ce que j'essaie de faire est, en utilisant des services pour ip-lookup et geo-lookup, placer un marqueur sur une carte à l'emplacement des visiteurs .. pour l'instant.Obtention d'une erreur GET lors de l'imbrication de JQuery/json-calls: Mise à jour

Il sera ensuite utilisé comme script, pour être placé sur des pages, pour alimenter une base de données avec des emplacements d'utilisateurs depuis lesquels ils visitent nos sites. Ensuite, en lisant depuis la base de données, placez des points sur une carte où les utilisateurs se trouvent. Une sorte de tableau de bord.

.. Quoiqu'il en soit

// 


[ 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); 

    }); 

}); 

}); 

Quand je suis en train de courir, je pense que je suis venu à la conclusion que je reçois une requête GET erreur ou quelque chose lorsque le script tente d'exécuter le deuxième fonction JSON. Il saute tout simplement.

Une idée de ce qui pourrait causer cela?

EDIT:

J'ai changé la variable pour la deuxième JSON demande. Et il fonctionne. Mais juste quand je l'essaie pendant que c'est sur ma machine locale. Avec Safari.

Je l'ai essayé dans Chrome et Firefox. À la fois local et sur un serveur. Juste ne travaillera pas.

rouge marqué du texte dans 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>'); 
      }); 

     }); 
    }); 
}); 
+0

Qu'est-ce que l'onglet "net" de Firebug ou l'outil de suivi des ressources de Chrome disent sur quelle erreur vous obtenez exactement? –

+0

Comme l'a demandé Pekka, qu'est-ce qui est enregistré dans l'inspecteur net? Est-ce une requête GET ou une requête OPTIONS? –

Répondre

0

Essayez de changer le paramètre JSON de la seconde fonction. Je pense que vous avez des problèmes en utilisant le même nom de paramètre pour les deux fonctions.