фигурные скобки преобразуются в код Escape-символа при настройке cook ie через nuxt js - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть две веб-страницы, одна из которых работает с php, а другая с nuxt js Я уже настроил команду cook ie со стороны php, и теперь я хочу использовать и манипулировать значением cook ie на платформе nuxt и снова настроить с тем же именем. Я использую плагин cook ie -universal-nuxt для установки файлов cookie.

Теперь я столкнулся с проблемой, заключающейся в том, что мой повар ie, настроенный с помощью php, выглядит следующим образом:

{% 22name% 22:% 22vandana% 22% 2C% 22email% 22:% 22vvv@dfdf.com%22%2C%22display_city%22:% 22Jakarta + Selatan% 22% 2C% 22city% 22:% 22jakarta-Selatan% 22% 2C% 22city_id% 22:% 22146% 22% 2C% 22subCityId% 22:% 22% 22% 2C% 22subCityName% 22:% 22% 22% 2C% 22mobile% 22:% 22847387483% 22% 2C% 22alternateMobile% 22:% 22% 22% 2C% 22lead_type% 22:% 2270% 22% 2C% 22brandSlug% 22:% 22toyota% 22% 2C% 22modelSlug% 22:% 22kijang-Innova% 22% 2C% 22variantSlug% 22:% 22% 22% 2C% 22preferDay% 22: % 227% 22% 2C% 22preferTime% 22:% 22% 22% 2C% 22purchaseOption% 22:% 22% 22}

, и мой ночной повар ie настроен как beolw:

% 7B% 22city% 22% 3A% 22% 22% 2C% 22display_city% 22% 3A% 22display_city% 22% 2C% 22id% 22% 3A% 22id% 22% 2C% 22pincode% 22% 3A% 22% 22 % 2C% 22locality% 22% 3A% 22% 22% 2C% 22subCityId% 22% 3A% 22% 22% 2C% 22subCityName% 22% 3A% 22% 22% 2C% 22name% 22% 3A% 22vandan% 22% 2C % 22mobile% 22% 3A% 228423847324% 22% 7D

Означает фигурные скобки и двоеточия он автоматически кодируется по схеме uriencode в nuxt js. Поэтому из-за этого моя функциональность по умолчанию на php работает неправильно, поскольку cook ie имеет другое значение. Я хочу, чтобы мой js установил cook ie точно так же, как php.

Вот мой код js, который я использую для установки cook ie:

this.$cookies.set(
  'gd_uc',
  JSON.stringify({
    city: cityData.city,
    display_city: cityData.display_city,
    id: cityData.id,
    pincode: '',
    locality: '',
    subCityId: '',
    subCityName: '',
    name: cityData.name,
    mobile: cityData.number
  })

1 Ответ

0 голосов
/ 05 февраля 2020

Я вижу, проблема в том, что используемый вами плагин использует encodeURIComponent в качестве функции по умолчанию для кодирования, поэтому вам придется использовать собственную функцию для получения нужного выходного формата (в соответствии с тем, что PHP делает)

К счастью, вы можете передать свою собственную функцию кодирования как часть опций функции set. Это третий параметр функции set:

this.$cookies.set( 'gd_uc', data, { encode: function(){...}}

Что бы я сделал, это примерно так:

this.$cookies.set(
  'gd_uc',
  JSON.stringify({
    city: cityData.city,
    display_city: cityData.display_city,
    id: cityData.id,
    pincode: '',
    locality: '',
    subCityId: '',
    subCityName: '',
    name: cityData.name,
    mobile: cityData.number
  }),
  encode: function(value){
    // 1. remove the { and } characters
    // 2. pass the resulting string to encodeURIComponent
    // 3. Add { and } to the beginning and the end of your string
    return `{${encodeURIComponent(value.replace(/[\{\}]/g,''))}}`;
  }
)

Надеюсь, это поможет!

...