Я использую GET/cart.js
вызов в моей теме, чтобы получить содержимое корзины в виде объекта JSON, например:
var response = jQuery.getJSON('/cart.js');
Затем я пытаюсь войти в консольсодержимое объекта, подобного этому ( в том же файле фрагмента, сразу после вызова ):
$( document ).ready(function() {
console.log(response.responseJSON.items[0]);
});
Я получаю TypeError: response.responseJSON is undefined
в консоли.Если я попытаюсь снова войти в консоль (console.log(response.responseJSON.items[0]);
), это сработает и напечатает первый элемент корзины.
Я пытался проверить объект до тех пор, пока он не перестанет undefined с помощью цикла while
, и я также попытался войти в консоль только после полной загрузки страницы.
Дляради ясности, это полное содержание моего фрагмента:
var response = jQuery.getJSON('/cart.js');
$( document ).ready(function() {
console.log(response.responseJSON.items[0]);
});
Как я могу сделать эту работу прямо из моего файла фрагмента?
РЕДАКТИРОВАТЬ: я должен упомянуть, что объект ужепроанализировал, так что это не причина, по которой он дает мне undefined .Я попытался разобрать его просто ради этого, но он дал мне еще одну ошибку.
РЕДАКТИРОВАТЬ 2: Вот JSON, который я получаю от вызова:
{
"readyState": 4,
"responseText": "{\"token\":\"4472c3d68931e8fe2bff0afcca67a188\",\"note\":null,\"attributes\":{},\"original_total_price\":39800,\"total_price\":39800,\"total_discount\":0,\"total_weight\":0.0,\"item_count\":2,\"items\":[{\"id\":16640068878400,\"properties\":null,\"quantity\":2,\"variant_id\":16640068878400,\"key\":\"16640068878400:94cf8752e20f28a3f675ee10f8e5cc72\",\"title\":\"Compleu Abby - 60\",\"price\":19900,\"original_price\":19900,\"discounted_price\":19900,\"line_price\":39800,\"original_line_price\":39800,\"total_discount\":0,\"discounts\":[],\"sku\":\"2558\",\"grams\":0,\"vendor\":\"33 Aya\",\"taxable\":true,\"product_id\":1710662484032,\"gift_card\":false,\"url\":\"\\/products\\/compleu-abby?variant=16640068878400\",\"image\":\"https:\\/\\/cdn.shopify.com\\/s\\/files\\/1\\/0087\\/2500\\/4352\\/products\\/61_b38d4463-58b7-4569-bf0c-71b59fcb6e28.jpg?v=1544168500\",\"handle\":\"compleu-abby\",\"requires_shipping\":true,\"product_type\":\"\",\"product_title\":\"Compleu Abby\",\"product_description\":\"Compus din bluză dantelă cu tricot, eșarfă și pantalon tricot.\\n*eșarfa nu este inclusă în preț, este oferită cadou și poate varia în funcție de stocul disponibil\",\"variant_title\":\"60\",\"variant_options\":[\"60\"]}],\"requires_shipping\":true,\"currency\":\"RON\"}",
"responseJSON": {
"token": "4472c3d68931e8fe2bff0afcca67a188",
"note": null,
"attributes": {},
"original_total_price": 39800,
"total_price": 39800,
"total_discount": 0,
"total_weight": 0,
"item_count": 2,
"items": [
{
"id": 16640068878400,
"properties": null,
"quantity": 2,
"variant_id": 16640068878400,
"key": "16640068878400:94cf8752e20f28a3f675ee10f8e5cc72",
"title": "Compleu Abby - 60",
"price": 19900,
"original_price": 19900,
"discounted_price": 19900,
"line_price": 39800,
"original_line_price": 39800,
"total_discount": 0,
"discounts": [],
"sku": "2558",
"grams": 0,
"vendor": "33 Aya",
"taxable": true,
"product_id": 1710662484032,
"gift_card": false,
"url": "/products/compleu-abby?variant=16640068878400",
"image": "https://cdn.shopify.com/s/files/1/0087/2500/4352/products/61_b38d4463-58b7-4569-bf0c-71b59fcb6e28.jpg?v=1544168500",
"handle": "compleu-abby",
"requires_shipping": true,
"product_type": "",
"product_title": "Compleu Abby",
"product_description": "Compus din bluză dantelă cu tricot, eșarfă și pantalon tricot.\n*eșarfa nu este inclusă în preț, este oferită cadou și poate varia în funcție de stocul disponibil",
"variant_title": "60",
"variant_options": [
"60"
]
}
],
"requires_shipping": true,
"currency": "RON"
},
"status": 200,
"statusText": "OK"
}