Неправильно JSON Данные возвращаются в Shopify - PullRequest
0 голосов
/ 08 июля 2020

Я создал альтернативный шаблон Shopify, который возвращает настраиваемые JSON продуктов в коллекции, чтобы я мог хранить настраиваемые метаполя в объекте для использования в jQuery.

Я установил вверх мой вызов AJAX GET и правильный URL-адрес, однако, когда я go проверяю ответ на вызов GET, вместо того, чтобы возвращать пользовательский JSON из предоставленного URL-адреса, он просто возвращает стандартную коллекцию Shopify JSON что вы можете увидеть из (store_url) / collections / (collection_name). json.

Почему он не возвращает ответ с URL-адреса (store_url) / collections / (collection_name)? view = filter - json

(filter- json - это жидкий шаблон, который возвращает пользовательский JSON)

var coll_url = window.location.href;

$.ajax({
        type: 'GET',
        url: coll_url,
        data: {
            'view': 'filter-json'
        },
        dataType: "json",
        success: function(res){
          
            console.log(res);
            console.log(this.url);
          
        },
        error: function(status){
             alert(status);
        }
    })

Изображение (collection_url)? View = filter- json ссылка

Изображение возвращенного журнала консоли при действии на странице

1 Ответ

0 голосов
/ 09 июля 2020

Shopify в этом случае умнее вас и предоставляет вам данные, которые, по их мнению, вы хотите, а не значения, которые вы действительно хотите.

Каждый раз, когда вы делаете AJAX вызов на страницу продукта ожидая типа ответа «application / json» Shopify поможет «исправить» вашу оплошность, если вы забыли завершить запрос страницы с помощью «. js» или «. json» и вернет значение по умолчанию JSON объект для этого продукта. Устанавливая dataType на json в вашем запросе, jQuery автоматически устанавливает эти заголовки запроса, и поэтому результат net состоит в том, что все эти полезные поведения полностью неверно интерпретируют ваш запрос.

Чтобы получить доступ к своей настраиваемой конечной точке, вам нужно будет запросить ее без типа json, чтобы получить содержимое вашей настраиваемой страницы в виде простого текста, а затем использовать JSON.parse для преобразования данных ответа в пригодный для использования объект.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...