我正在尝试使用 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/