Cookies 通过nuxt js设置cookie时,花括号转换为字符转义码

Cookies 通过nuxt js设置cookie时,花括号转换为字符转义码,cookies,yii2,nuxt.js,Cookies,Yii2,Nuxt.js,我有两个网页,一个运行php,另一个运行nuxt js。我已经从php端设置了cookie,现在我想在nuxt平台上使用并手动填充cookie的值,并再次使用相同的名称进行设置。我正在使用cookie universal nuxt插件设置cookie 现在我面临一个问题,我的cookie由php设置,如下所示: {%22name%22:%22vandana%22%2C%22电子邮件%22:%22vvv@dfdf.com%22%2C%22显示城市%22:%22雅加达+塞拉坦%22%2C%22城市%

我有两个网页,一个运行php,另一个运行nuxt js。我已经从php端设置了cookie,现在我想在nuxt平台上使用并手动填充cookie的值,并再次使用相同的名称进行设置。我正在使用cookie universal nuxt插件设置cookie

现在我面临一个问题,我的cookie由php设置,如下所示:

{%22name%22:%22vandana%22%2C%22电子邮件%22:%22vvv@dfdf.com%22%2C%22显示城市%22:%22雅加达+塞拉坦%22%2C%22城市%22:%22雅加达塞拉坦%22%2C%22城市id%22:%22146%22%2C%22子城市id%22:%22%22%2C%22子城市名称%22:%22%22%2C%22移动电话%22:%22847387483%22%2C%22替代移动电话%22:%22%22%22%22%2C%22领先类型%22:%2270%22%2C%22brandSlug%22:%22%22%22丰田22%22%22%22%22%22%22%2C模型Slug%22:%22kijang innova%22%2C%22VariantsSlug%22:%22%22%2C%22preferDay%22:%227%22%2C%22preferTime%22:%22%22%2C%22purchaseOption%22:%22%22}

我的nuxt cookie设置得像beolw:

%7B%22城市%22%3A%22%22%2C%22显示城市%22%3A%22显示城市%22%2C%22id%22%3A%22id%22%2C%22pincode%22%3A%22%2C%22本地%3A%22%22%22%2C%22%2C%22%22%2C%22子城市名称%22%3A%22%22%2C%22%22%22%22name%22%3A%22vandan%22%2C%22%22%2222%22mobile%3A%423847324%7D

意味着花括号和冒号在nuxt js中由uriencoded scheme自动编码。因此,我在php上的默认功能无法正常工作,因为cookie设置了不同的值。我希望我的js能够像php一样设置cookie

下面是我用来设置cookie的js代码:

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
  })

我明白了,您所遇到的问题是,您使用的插件使用encodeURIComponent作为默认的编码函数,因此您必须使用自己的函数来获得所需的输出格式(以匹配PHP所做的工作)

谢天谢地,您可以将自己的encode函数作为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,''))}}`;
  }
)

希望有帮助!

您使用什么插件来管理cookie?@jairerina:cookie universal-nuxt