2009-11-28 49 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