Google APi不检索价值

时间:2013-11-05 06:19:02

标签: javascript google-api

我的google 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 

请帮帮我。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您的代码存在多个问题:

  1. 浏览器通常不允许您对与您所在页面不同的域进行直接Ajax。这称为same-origin protections。这是你看到的错误。解决此问题的典型方法是执行JSONP调用,该调用使用脚本标记来解决此限制。您可以在Google的API网站上了解如何执行此操作。

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