2014-09-08 2 views
0

Я использую jQuery 1.11.1, размещенный Google CDN, и я запускаю локальный простой сервер, используя 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); 
    }); 

}) 

на данном этапе я просто хочу, чтобы убедиться, что я получаю мой JSON, который находится в файле скриптов/products.js и содержит только следующий код:

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

У меня нет ошибок с консоли, и инструменты dev показывают, что файл продуктов загружается! Я вижу статус 200 OK. Итак, почему не вызываются журналы консоли в моем обратном вызове? Если я попытаюсь просмотреть данные, ничего не произойдет?

+2

вы можете добавить обработчик потерпеть неудачу и посмотреть, будет ли он вызывался –

+0

Это не действительный JSON. – Bergi

+0

Если статус равен 200, тогда он должен вызвать \ –

ответ

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 
}] 
+0

SyntaxError: JSON.parse: ожидаемое имя свойства или '}' в строке 2 столбца 5 данных JSON - только что видел, спасибо! –

Смежные вопросы