对于谷歌地图http地理编码器,xmlHttprequest状态为0

时间:2009-11-28 00:41:17

标签: google-maps xmlhttprequest

我正在尝试通过AJAX从客户端向Google Maps Geocoding服务提交HTTP请求。我的状态一直为0.

我知道请求有效,因为当我在浏览器地址栏中输入URL时,我得到了有效的结果。这是代码(假设'url_string'有一个有效的地理编码服务网址 - 我已经如上所述对其进行了测试):

var request = GXmlHttp.create();
request.open("GET", url_string, true);
request.onreadystatechange = function() {
    if (request.readyState == 4) {
        alert("STATUS IS "+ request.status);  
    }
}
request.send(null);

我的应用程序在Google appengine上运行,我在本地尝试时遇到错误,但在部署和尝试时也是如此。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您无法向Google提交自己的XmlHttpRequest,因为这违反了Same Origin Policy,因此被浏览器拒绝。正如bobince所说,使用Google提供的类来代替它。他们通过聪明的DOM黑客来解决这个问题,你不需要重新实现。

答案 1 :(得分:0)

0是完全失败的连接所获得的状态代码,其中没有HTTP响应来返回状态代码。这可以是例如。各种套接字错误(虽然在这种情况下IE会给你一个像12029这样的WinSock错误代码。)

  

当我在浏览器地址栏中输入网址时,我得到了有效的结果。

我怀疑您的服务器上没有该网址。 GXmlHttpXMLHttpRequest的一个小包装器,无法执行跨域请求。

使用specific class Google为您提供地理编码,而不是尝试使用纯XMLHttpRequest进行地理编码。