2013-12-10 44 views
0

我正在工作,现在在phonegap android应用程序中,我需要用户的当前地址,以便我使用此 JSON api从javascript中获取位置从JSON

这是我的代码从JSON API

$.ajax('http://maps.googleapis.com/maps/api/geocode/json?latlng=26.9008773,75.7403539&sensor=true', { 
     dataType: 'jsonp', 
     timeout: 3000, 
     data: { 
      _method: 'GET' 
     }, 
     success: function (data,status) { 
      if (data._status != 200) { 
       console.log('received error', data._status); 
       // handle error 
      }else{ 
       console.log('received data', data); 
       // do something useful with the data 
       } 
      }, 
     error: function(data,status) { 
       var myObject = JSON.stringify(data); 
       console.log("Data Returned is " + myObject); 
       console.log("Status is " + status); 
       alert('error'); 
      }, 
     complete: function(data, status) { 
       alert('complete'); 
      } 
    }); 

获取位置更新数据那张错误区间的每一次,那么完整的部分,从来没有进入成功的一部分。 控制台输出为:

12-10 11:11:34.393: I/Web Console(10620): Data Returned is {"readyState":4,"status":404,"statusText":"error"} at file:///android_asset/www/index.html:263 
    12-10 11:11:34.393: I/Web Console(10620): Status is error at file:///android_asset/www/index.html:264 

谁能告诉我,究竟哪里的问题是什么?

回答

0

如果我没有记错,PhoneGap中的默认安全策略是阻止所有网络访问。您需要将白名单http://maps.googleapis.com

+0

谢谢,我有加<访问起源=“*” />到配置文件,但还是同样的结果... – Rohit

0
ajax_call ='http://maps.googleapis.com/maps/api/geocode/json?latlng=26.9008773,75.7403539&sensor=true'; 
    $.ajax({ 
     type: "GET", 
     url: ajax_call, 
     cache:false, 
     dataType: "json", 
     success: function(response){ 
       $.each(response.results, function(key, value) {      
          //alert(value.formatted_address); 
          console.log(value.formatted_address);          
       }); 
     } 
    }).done(function() { 

    }) 
+0

感谢您的答复,但没有解决 - 一样earliar – Rohit

+0

线264检查你的代码 – Ved

0

您请求不支持JSONP的API,最终的请求将是这样的:

http://maps.googleapis.com/maps/api/geocode/json?callback=jQuery18309743240959942341_1386656119920&latlng=26.9008773,75.7403539&sensor=true&_method=GET&_=1386656120107 

与回调PARAM,但产量仍JSON,不javsscript文件中像

jQuery18309743240959942341_1386656119920(jsonDataHere...) 

看一看这个:https://developers.google.com/maps/documentation/javascript/examples/geocoding-reverse,它请求这样的网址

https://maps.googleapis.com/maps/api/js/GeocodeService.Search?5m2&1d40.714224&2d-73.96145200000001&7sUS&9sen&callback=_xdc_._4cni6z&token=46423 

,输出是:

_xdc_._4cni6z && _xdc_._4cni6z({ .... 

这是JSONP。

+0

我不我不想在地图上显示位置,我只是想在alert中显示地址文本,我是否需要为它找回... – Rohit

+0

关键部分是geocoder.geocode({'latLng':latlng},function(结果,状态){//现在你得到结果 – Andrew