我正在尝试使用谷歌地图的REST api将输入的地址转换为坐标。为此,我使用jQuery的getJSON函数,因为它使用本机JSONP调用。
虽然它不起作用,但它不会取得成功,因此永远不会调用警报。
$("#makeCords").click(function(){
straat = $('#straat').val();
stad = $('#Stad').val();
land = $('#Country').val();
if(straat == "" || stad == "" || land == ""){
alert("Onvoldoende gegevens! Vul straat, stad en land aan voor het gebruik van de ´bereken coordinaten´ functie.");
}else{
$.getJSON("http://maps.google.com/maps/api/geocode/json?callback=?",
{
adress: straat +", " + stad +", " + land,
sensor: "false"
},
function(data) {
alert(data);
});
}
});
答案 0 :(得分:3)
Google Maps Geocoding API不支持JSON-P;它将忽略您的callback
参数,因此跨域JSON-P将无效。
您应该使用官方Google Maps Javascript库。在内部,库确实使用JSON-P来传递信息(因为它几乎 是执行跨域请求的唯一方法),但该URL仅供官方库使用。
答案 1 :(得分:0)
尝试将& format = json 添加到您的获取jason网址并更改& callback =? & jsonp callback =?
答案 2 :(得分:0)
尝试jquery jsonp:
$.ajax({
type: "GET",
url: "http://url",
dataType: "jsonp" ,
success: function (data) {
}
});
答案 3 :(得分:-2)
javascript(在这种情况下是jquery)不会在其自己的域之外获取或发布数据(至少据我所知,javascript不允许post
或get
跨域名?)?您可以使用本地php脚本通过curl从google服务器收集json信息,并将您的get-query发送到此本地脚本。我试试这个变通方法......
另一种方法是使用google maps api for javascript。您可以使用该api中的gecoding函数从给定地址检索纬度和经度。所以你不需要做任何获取或发布......