$ .getJSON()不使用chrome,为什么?

时间:2012-04-02 05:08:24

标签: jquery ajax

此代码在FF和Safari中运行良好,而在Chrome中为什么不行?

$.getJSON('s.json', function(data) {
    var items = [];

    $.each(data, function(key, val) {
        items.push('<li id="' + key + '">' + val + '</li>');
    });

    $('<ul/>', {
        'class' : 'my-new-list',
        html : items.join('')
    }).appendTo('body');
});

3 个答案:

答案 0 :(得分:2)

我有完全相同的问题,问题是我的json无效(它中有隐藏的制表符)。 Chrome似乎比其他浏览器更严格。

使用.error函数检查响应,例如

$.getJSON('s.json', function(data) {
  //...
})
.error(function(data) {
  console.log("Error!");
});

您还可以尝试使用http://jsonlint.com/

等功能验证输出

答案 1 :(得分:0)

这种方法可能仍然不起作用,但会在创建元素时逐步附加元素,从而为您提供更好的调试机会。

var $ul = $('<ul></ul>').appendTo('body').addClass('my-new-list');
$.getJSON('s.json', function(data) {
    $.each(data, function(key, val) {
        $('<li></li>').appendTo($ul).attr('id',key).html(val);
    });
});

检查DOM以查看它到底有多远。

答案 2 :(得分:0)

在网络服务器中运行该应用程序。它解决了这个问题。