我正在開發使用Dashcode一個iPhone的Web應用程序。當我用iphone模擬器瀏覽它時,我的應用運行良好。當我將它部署到Web服務器時,我從來沒有從XMLHttpRequests獲得響應。下面是我使用的代碼:iPhone Dashcode中的XMLHttpRequest沒有反應
function get(feedURL, handler) {
var onloadHandler = function() { handler(xmlRequest); };
var xmlRequest = new XMLHttpRequest();
xmlRequest.onload = onloadHandler;
xmlRequest.open("GET", feedURL);
var credentials = encodeBase64(_login.username + ':' + _login.password);
xmlRequest.setRequestHeader("Authorization", "Basic " + credentials);
xmlRequest.send();
}
當我附上一個onreadystatechange的處理程序中,我可以看到請求進入狀態4.我還可以看到我的服務器日誌的請求。我還添加了一個「無緩存」請求標題,這沒有幫助。我在託管軟件包上的本地Web服務器上嘗試過這種方法,但我沒有任何運氣能夠實現它。
所以'responseText'是一個空字符串時'readyState'達到'4'? – kangax 2009-08-25 22:36:07
是的,它是kangax – dlinsin 2009-08-26 04:08:16
你是字母數字的用戶名和密碼嗎?我注意到使用標準的SDK,iPhone與Basic Auth有點差別。您是否嘗試使用http:// user:password @ host/path URL而不是手動設置標題? XML請求可能不打算處理它收到的基本身份驗證頭,作爲響應並且不返回任何內容。根據用戶名和密碼,您需要對它們進行百分比編碼以將其粘貼到URL中。 – 2009-09-16 07:21:21