【问题标题】:AJAX response is empty on iPhone Mobile SafariiPhone Mobile Safari 上的 AJAX 响应为空
【发布时间】:2011-09-28 12:18:20
【问题描述】:

我们运行 Web 服务,并使用 PhoneGap 为它构建了一个 Web 应用程序和 iPhone 应用程序的网站。我们在网页和 PhoneGap 页面中都使用 ajax 来与我们的服务器通信。一切似乎都很好,直到我们的一台测试设备(iPhone 3Gs、iOS 4.3.2)不断地从 XMLHttpRequest 获得空响应体。

我们在 Web 应用程序中使用 jQuery.ajax,并在 PhoneGap 应用程序中使用 XMLHttpRequest 实现了类似的功能。我们首先发现 PhoneGap 应用程序无法在“糟糕”的 iPhone 3Gs 上登录我们的服务器,然后在其 Mobile Safari 上尝试了 Web 应用程序,发现同样失败。但是,其他网站(Google、GMail、Twitter 等)在其 Mobile Safari 上运行没有任何问题,我们的其他设备(甚至所有 iPhone 4.x 模拟器)都没有这个问题。

我们调试了我们的代码,发现我们从 XMLHttpRequest 得到的 responseText 格式不正确。当我们将它作为 JSON 解析成一个对象时,结果是一个空字符串 ("")。但是,状态码是正确的。

有没有人听说过这个问题?我们没有其他运行 iOS 4.3.2 的 iPhone 3G,因此我们很难确定这是否是操作系统方面的问题。

【问题讨论】:

  • 您说的是空响应正文和格式错误的响应。哪种情况?您可以发布原始输出吗?你能创建并调用一个只返回一个变量的测试方法吗?你能显示格式化响应的代码吗?服务是用什么语言编写的?

标签: ajax web-applications mobile-safari iphone


【解决方案1】:

是否可能与此问题有关:https://github.com/jquery/jquery-mobile/issues/2521?如果是这样,结论似乎是该版本的 Safari 存在问题。

即使该错误不完全相同,您也可以尝试更改/删除链接的 rel 属性并禁用 JQuery 的 pushState 以进一步缩小问题范围。

如果您还没有尝试过,我建议您获取页面的本地副本并尽可能减少其内容,以尝试找到最小的罪犯,即仍然显示的页面的最小版本问题。

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2016-07-25
    • 2020-09-07
    • 2011-03-05
    • 1970-01-01
    相关资源
    最近更新 更多