jQuery $ .getJSON没有返回任何数据,但获得200 OK的状态

时间:2014-09-08 12:30:16

标签: javascript jquery

我正在使用由Google CDN托管的jQuery 1.11.1,我在我的计算机上使用python -m SimpleHTTPServer运行本地简单服务器。现在jQuery正确加载,在我的应用程序中我有以下代码:

$('document').ready(function () {

    // let's get the products
    $.getJSON( 'scripts/products.js', function ( data ) {
        console.log('got here');
        console.log(data);
    });

})

在这个阶段我只想确定我收到的文件脚本/ products.js中的JSON,仅包含以下代码:

[{
    product: "Product 1",
    size: "S",
    price: 10.99
},
{
    product: "Product 2",
    size: "M",
    price: 12.99
},
{
    product: "Product 3",
    size: "L",
    price: 13.99
}]

我从控制台得到没有错误,开发工具显示正在加载产品文件!我看到状态为200 OK。那么为什么调用控制台的日志不会被调用呢?如果我尝试循环数据没有任何反应?

1 个答案:

答案 0 :(得分:2)

您引用的内容不是有效的JSON。如果jQuery推迟到浏览器的内置JSON.parse,并且浏览器的JSON.parse是严格的(我相信大部分都是如此),尽管您正在检索products.js文件的文本,解析失败。如果您使用的是返回承诺的fail callback,我希望您能够看到它被调用。

在JSON中,键必须是双引号:

[{
    "product": "Product 1",
    "size": "S",
    "price": 10.99
},
{
    "product": "Product 2",
    "size": "M",
    "price": 12.99
},
{
    "product": "Product 3",
    "size": "L",
    "price": 13.99
}]
相关问题