我正在尝试通过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上运行,我在本地尝试时遇到错误,但在部署和尝试时也是如此。
任何帮助都将不胜感激。
答案 0 :(得分:1)
您无法向Google提交自己的XmlHttpRequest,因为这违反了Same Origin Policy,因此被浏览器拒绝。正如bobince所说,使用Google提供的类来代替它。他们通过聪明的DOM黑客来解决这个问题,你不需要重新实现。
答案 1 :(得分:0)
0
是完全失败的连接所获得的状态代码,其中没有HTTP响应来返回状态代码。这可以是例如。各种套接字错误(虽然在这种情况下IE会给你一个像12029
这样的WinSock错误代码。)
当我在浏览器地址栏中输入网址时,我得到了有效的结果。
我怀疑您的服务器上没有该网址。 GXmlHttp
是XMLHttpRequest
的一个小包装器,无法执行跨域请求。
使用specific class Google为您提供地理编码,而不是尝试使用纯XMLHttpRequest进行地理编码。