代码之家  ›  专栏  ›  技术社区  ›  dlinsin JaviAlgaba

iPhone dashcode xmlhttprequest无响应

  •  1
  • dlinsin JaviAlgaba  · 技术社区  · 15 年前

    我正在开发一个带有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。我还可以在服务器日志中看到请求。我还添加了一个“no cache”请求头,但没有帮助。我在本地web服务器上的托管软件包上尝试了这个方法,但没有成功。

    3 回复  |  直到 15 年前
        1
  •  2
  •   slf    15 年前

    黑暗中的一枪,但是 apple docs 说这个。

    目的地必须与 一个提供包含 来自其他来源的web服务数据, 一切都必须来自同一个地方 域名。在这种情况下,你 不用担心安全问题 警告吓坏了你的用户。

    status和statusText的值是什么?有关详细信息,请尝试使用getAllResponseHeaders()。

    另外,如果只是需要基本身份验证,可以将其传递给open(),如下所示:

    open("method", "URL", asyncFlag, "userName", "password")
    
        2
  •  1
  •   Douglas Mayle    15 年前

    iPhone可能不希望收到基本的Auth头,因为您需要手动设置请求头。尝试将用户名和密码添加到URL(在百分比编码之后),并以这种方式运行请求。

        3
  •  0
  •   slothbear    15 年前

    或许可以尝试dashcode3.0中的新调试功能(snowleopard的新功能)?这不是一个真正的答案,但也许换个环境——或者新的调试器——会让事情变得松散起来。

    推荐文章