Javascript выпуск "Неожиданный токен:" - PullRequest
0 голосов
/ 14 января 2019

Error

Как видно из названия, у меня ошибка javascript с

Uncaught SyntaxError: Unexpected token :

Результат этой ошибки:

{
"id":19728251846714,
"properties":null,
"quantity":1,
"variant_id":19728251846714,
"key":"19728251846714:f1a55a69aed71e7c10ca53fd3549edda",
"title":"Ritual Petalos de rosas y vino tinto - Obispado",
"price":139900,
"original_price":139900,
"discounted_price":139900,
"line_price":139900,
"original_line_price":139900,
"total_discount":0,
"discounts":[],
"sku":"",
"grams":0,
"vendor":"Casa Azul Spa",
"taxable":false,
"product_id":1959512244282,
"gift_card":false,
"url":"\/products\/ritual-petalos-de-rosas-y-vino-tinto?variant=19728251846714",
"image":"https:\/\/cdn.shopify.com\/s\/files\/1\/0087\/2267\/7818\/products\/PETALOS_DE_ROSAS_Y_VINO_TINTO.jpg?v=1538589224",
"handle":"ritual-petalos-de-rosas-y-vino-tinto",
"requires_shipping":false,
"product_type":"",
"product_title":"Ritual Petalos de rosas y vino tinto",
"product_description":"\u0026lt;!--\ntd {border: 1px solid #ccc;}br {mso-data-placement:same-cell;}\n--\u003eRitual Pétalos de Rosas y Vino tinto, Exquisito masaje que ofrece bienestar, relajación e hidrata la piel. Realizamos el ritual con mascarilla hidratante y antioxidante, piedras calientes, y cuarzos para ofrecer un delicioso y aromático descanso a todo el cuerpo.",
"variant_title":"Obispado",
"variant_options":["Obispado"]
}

Пока я читал JSON и проверял JSON между несколькими платформами, я не вижу здесь ошибки ...

код

Следующая ошибка связана с этой функцией:

jQuery.getJSON('/products/'+getProduct.product_handle+'.js', function(product) {

    product.variants.forEach(function(variant) {
      if (getProduct.sucursal == variant.title){
        jQuery.post('/cart/add.js', {
          quantity: 1,
          id: variant.id
        });
      }
    });

  });

платформа

Я работаю с Shopify с языком шаблонов Liquid, внутри этой жидкости у меня есть тег <script>, который запускает AJAX для вызова метода из Shopify.

Дополнительная информация

Я знаю, что ошибка должна иметь синтаксис javascript, но, как я уже говорил, я не увидел ошибку.

Кто-нибудь знает об этой ошибке?

Я ценю каждый ответ.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Попробуйте использовать длинную форму вызова jquery.ajax, чтобы указать все параметры AJAX вручную:

jQuery.ajax({
  url:'/cart/add.js',
  type: 'post',
  dataType: 'json',
  data: { quantity:1, variant: variant.id }
  // Optional: success/error functions
})

Основываясь на других ответах, может случиться так, что jQuery ожидает один тип заголовка ответа, но на самом деле получает другой тип.

Если это работает, вы сможете вернуться к использованию jQuery.post, указав 4-й параметр для типа данных ('json'): https://api.jquery.com/jquery.post/

0 голосов
/ 14 января 2019

Ваши URL оканчиваются на .js, что означает, что сервер ответит заголовком Content-Type: application/javascript, чтобы сообщить браузеру, что он отправляет JavaScript.

Данные, которые вы цитируете, , а не JavaScript, это JSON.

jQuery пытается выполнить JSON, как если бы это был JavaScript (потому что именно так сервер сказал, что должен делать с данными), и это не удается.

Заставить сервер отвечать правильным заголовком для данных JSON: Content-Type: application/json.

Вы, вероятно, можете сделать это, заменив .js на .json.

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