iPhone破折号码xmlhttprequest无响应

时间:2009-08-25 07:02:58

标签: javascript iphone xmlhttprequest dashcode

我正在使用破折号开发iPhone网络应用程序。当我用iphone模拟器浏览它时,我的应用运行正常。当我将它部署到Web服务器时,我从未收到XMLHttpRequests的响应。这是我使用的代码:

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.我还可以在服务器日志中看到请求。我还添加了一个“无缓存”请求标头,这没有帮助。我在我所拥有的托管包上的本地网络服务器上尝试了这个,我没有运气好运。

3 个答案:

答案 0 :(得分:2)

在黑暗中拍摄,但apple docs说出来。

  

网址请求的域名   目的地必须与   提供包含页面的页面   剧本。不幸的是,这意味着,   客户端脚本无法获取   来自其他来源的网络服务数据,   并将该数据混合到页面中。   一切都必须来自同一个   域。在这种情况下,你   不必担心安全问题   警告吓坏了你的用户。

status和statusText的值是什么?还可以尝试使用getAllResponseHeaders()获取更多信息。

此外,如果它只是您想要的基本身份验证,您可以将其传递给open(),如下所示:

open("method", "URL", asyncFlag, "userName", "password")

答案 1 :(得分:1)

由于您手动设置了请求标头,因此iPhone可能不会期望接收Basic Auth标头。尝试将用户名和密码添加到URL(在编码百分比之后)并以此方式运行请求。

答案 2 :(得分:0)

也许尝试一下DashCode 3.0(Snow Leopard的新功能)的新调试功能?不是真正的答案,但也许改变风景 - 或者新的调试器 - 会让事情变得松散。