2009-11-28 136 views
0

我想通过AJAX提交一个HTTP请求从客户端到谷歌地图地理编码服务。我一直得到0的状态。xmlHttp请求状态为0谷歌地图http geocoder

我知道该请求是有效的,因为当我在浏览器地址栏中输入URL时,我得到一个有效的结果。下面是代码(假设“URL_STRING”有一个有效的URL地址解析服务 - 如上面提到的我已经测试了这一点):

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); 

我的应用程序在谷歌AppEngine上运行,我得到的错误,当我尝试它在本地,但也是我部署和尝试时。

任何帮助,将不胜感激。

回答

0

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

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

我怀疑该URL不在您的服务器上。 GXmlHttp,是一个围绕XMLHttpRequest的小包装,无法做跨域请求。

使用specific class谷歌给你做地理编码,而不是试图用一个普通的XMLHttpRequest做到这一点。

1

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

+0

非常感谢,没有意识到跨域限制。 – Shazoo 2009-11-28 15:14:32