谷歌APi 不检索值



我对谷歌API网址有问题。我想从邮政编码中获取地址。但我无法获得价值

我的代码是

<script type="text/javascript">
var filter_new = "60609";
var request = new XMLHttpRequest();
        request.open("GET", "http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address="+filter_new, false);
        request.send();
        var xml = request.responseXML;
        var users = xml.getElementsByTagName("GeocodeResponse");
        for(var i = 0; i < users.length; i++)
        {
            var user = users[i];
            var names = user.getElementsByTagName("formatted_address");
            for(var j = 0; j < names.length; j++)
            {
                var filter_new1=names[j].childNodes[0].nodeValue;
            }
        }
alert(filter_new1);
</script>

当我运行此代码时,它显示以下错误:

XMLHttpRequest cannot load http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=60609. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101 

请帮助我。

您可以发起 CORS 或 JSONP 请求。谷歌支持两者。请在以下位置学习它们

  1. JSONP:http://api.jquery.com/jQuery.getJSON/http://learn.jquery.com/ajax/working-with-jsonp/

  2. 科尔斯:如何使跨域资源共享 (CORS) 后请求正常工作http://www.html5rocks.com/en/tutorials/cors/

您的代码存在多个问题:

  1. 浏览器通常不允许您将 Ajax 定向到与您所在的页面不同的域。 这称为同源保护。 这是您看到的错误。 解决此问题的典型方法是执行 JSONP 调用,该调用使用脚本标记来解决此限制。 您可以在Google的API网站上阅读有关如何执行此操作的信息。

  2. 你正在使用异步 false 作为参数(例如,尝试进行同步 ajax 调用)。 由于您可能要使用只能是异步的 JSONP,因此您需要更改代码的工作方式以处理异步响应。 这是JSONP的Google Maps API示例。

相关内容

  • 没有找到相关文章

最新更新