javascript - AJAX 获取请求在 iOS Safari 上有时会失败

标签 javascript jquery ios ajax json

我正在尝试使用 jQuery AJAX 在网站的另一个页面上显示我创建的 json 提要。在大多数情况下,我使用以下代码可以完美地工作,但在 iOS Safari 上它偶尔无法工作(大约十分之一)。当我说它不起作用时,文档中不会附加任何内容,并且我的“.items”元素留空。

这是我的 jquery 脚本,我在窗口加载时运行它:

$.ajax({
    type: "GET",
    url : '/json',
    success: function (data) {
        var json = JSON.parse(data.replace(/"/g, '"'));
        $.each(json.data, function (index, element) {
            $(".items").append("<p>" + json.data[index].Title + "</p>");
        });
     }
});

这是 JSON feed,它似乎是有效的,但是当将 dataType:'json' 添加到我的 ajax 请求时,没有返回任何内容:

{
    "data": 
    {
        "1": {
            "Title": "Page 1",
            "Url": "/page-1"
        },

        "2": {
            "Title": "Page 2",
            "Url": "/page-2"
        },

        "3": {
            "Title": "Page 3",
            "Url": "/page-3"
        }
    }
}

奇怪的是,当这不起作用时,不会显示任何错误消息,所以我不知道实际原因是什么。我怀疑 JSON 格式不正确,或者 JSON 由于某种原因没有被解析。在桌面浏览器上它总是有效,所以这让我相信这些不是原因,也许这只是一个 iOS 错误。

谁能帮我解决这个问题吗?有没有办法检查我的 json 是否已正确解析?

最佳答案

我遇到了完全相同的问题,即使对于静态有效的 JSON 文件,iOS Safari 也会返回“”...所以我在我们的代码之间寻找任何类似的内容,并且由于我们都使用“GET”,我决定尝试一下POST,因为为什么不……果然,POST 总是通过 ajax 返回我的 json,而 GET 却没有……

这绝对是 iOS safari 中无法正确处理的问题,但切换到 POST 对我有用......以防万一其他人遇到同样的问题。

关于javascript - AJAX 获取请求在 iOS Safari 上有时会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28717151/

相关文章:

javascript - 基于浏览器的本地文件系统到 SVG base64 数据字符串

javascript - Owl Carousel - 仅用一个点旋转木马幻灯片滑动多个旋转木马

javascript - 在javascript中获取多个数据输入?

javascript - 如何在表的第一列和最后一列之间动态添加列

javascript - 如何让 z-index 与 jQuery 插件 Cycle 配合使用

ios - 将对象数组转换为字符串数组

javascript - 自动完成在自动完成窗口中显示相关数据

javascript - 如何在单元测试环境中模拟 browserHistory?

iphone - iOS - 将 iPhone 版本转换为 iPad

ios - 当 UITableViewCell 在屏幕外滚动时变得不可见时如何添加自定义代码?