我的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
请帮帮我。
答案 0 :(得分:0)
您可以启动CORS或JSONP请求。谷歌支持两者。请在
学习答案 1 :(得分:0)
您的代码存在多个问题:
浏览器通常不允许您对与您所在页面不同的域进行直接Ajax。这称为same-origin protections。这是你看到的错误。解决此问题的典型方法是执行JSONP调用,该调用使用脚本标记来解决此限制。您可以在Google的API网站上了解如何执行此操作。
您正在使用async false作为参数(例如,尝试执行同步ajax调用)。由于您可能要使用只能是异步的JSONP,因此您需要更改代码的工作方式以使用异步响应。这是JSONP的Google Maps API example。