我正在尝试使用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是否已正确解析?
答案 0 :(得分:0)
我有完全相同的问题,iOS Safari将返回&#34;&#34;即使对于静态有效的JSON文件......所以我在代码之间寻找类似的东西,因为我们都使用&#34; GET&#34;,我决定尝试POST,因为为什么不...果然,POST总是通过ajax返回我的json,而GET没有......
在iOS Safari中肯定没有正确处理它,但切换到 POST 对我有用...以防万一其他人遇到同样的问题。< / p>