iOS Safari上的AJAX get请求有时会失败

时间:2015-02-25 10:55:46

标签: javascript jquery ios ajax json

我正在尝试使用jQuery AJAX将我创建的json feed显示在我站点的另一个页面上。在大多数情况下,我使用以下代码完美地工作,除了在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提要,似乎是有效的,但在将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是否已正确解析?

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题,iOS Safari将返回&#34;&#34;即使对于静态有效的JSON文件......所以我在代码之间寻找类似的东西,因为我们都使用&#34; GET&#34;,我决定尝试POST,因为为什么不...果然,POST总是通过ajax返回我的json,而GET没有......

在iOS Safari中肯定没有正确处理它,但切换到 POST 对我有用...以防万一其他人遇到同样的问题。< / p>