我正在使用 jQuery 的$.getJSON
方法向 JSON 页面发出请求,并从返回的 JSON 中创建一些 HTML 并将其放在页面上。
当我有一个嵌套的 JSON 对象时会出现问题,稍后我将向您展示一个示例。
首先,如果我向我的 JSON 页面发出请求并返回以下 JSON,则该函数可以正常工作,并且我看到页面上出现了一个漂亮的 HTML 元素:
JSON:
({
"variants": [
{
"variantId": "536",
"title": "Party Like a Rock Star for Two at the Metropolitan hotel, London ",
"price": "£299.00"
}
]
})
这工作正常,没有错误。
但是,只要我返回下面的 JSON,该函数就不起作用。
({
"variants": [
{
"variantId": "536",
"title": "Party Like a Rock Star for Two at the Metropolitan hotel, London ",
"price": "£299.00",
"blogs": [
{
"title": "Another test",
"author": "Sean",
},
{
"title": "This is a test",
"author": "Sean",
}
]
}
]
})
如您所见,其中没有任何字符会导致它太坏。我也尝试过重命名字段,只是碰巧“博客”、“标题”或“作者”是 JS 中的保留字(我想,没有区别!)
为了确保不是我处理导致问题的数据的方式,我设置了一个警报('Got here.');作为我的 $.getJSON 函数中的第一段代码(见下文),它不会触发,所以我知道这不是我对导致错误的数据所做的事情。
$.getJSON('/ajax/cover_flow_detail.ashx?experienceId=' + arguments[0], function(d) {
alert('Got here'); // doesn't fire ?
// omitted for brevity.
}
更奇怪的是——这只发生在 IE6 中。IE7 和 FF 都很好。
任何朝着正确方向的推动将不胜感激,我完全被难住了!
干杯,肖恩