2010-11-28 59 views
1

下不起作用:可以使用jQuery来制作Google Maps API调用吗?

$.get('http://maps.googleapis.com/maps/api/geocode/json?&sensor=false&region=nz&address=queen', function(response){ 
console.debug(response); 
}); 

现在看来似乎是不可能的,因为阿贾克斯的同源策略。但是,我正在尝试做一些交互操作,并且我需要JavaScript中Google Maps API的响应才能这样做。

回答

0

Lee的解决方案的替代方法是向您自己的服务器脚本发出Ajax请求,然后调用Google geocoder url。这是PHP中的一个简单示例。一个工作示例可以发现here

<?php 

$address = $_GET['address']; 
$address=str_replace(" ","+",$address); 
if ($address) { 
    $json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address. 
    '&sensor=true'); 
    echo $json; 
} 

?> 

jQuery代码

$.getJSON("getjson.php?address="+address, 
     function(response){ 
       //rest of your code 
      }); 
4

相同的原产地政策可能很难直接访问Google地图URI。但是,如果你使用谷歌提供的Javascript API,你将没有问题。

+0

姆......貌似我没有其他选择,只能使用谷歌自己的API函数,但为什么它的API调用,会工作,而不是Ajax调用。它的实现有什么不同。 thanx任何方式,欣赏答案。 – Aman 2010-11-28 08:53:39

+0

他们的API可能使用类似[JSONP](http://stackoverflow.com/questions/2067472/please-explain-jsonp/2067584#2067584)来使跨域调用正常工作。无论如何,他们的服务都是通过其中一个API使用的 - 他们不希望你通过任何其他机制来使用它。那么为何不?您也可以从使用他们的API中受益 - 通过这样做,您可以避免将来可能对底层实现进行的任何更改。出于好奇 - 为什么你想避免他们的API代码? – Lee 2010-11-28 18:41:45

相关问题