我可以在使用jquery.cookie时设置raw:true选项

时间:2012-10-23 16:36:30

标签: jquery cookies jquery-cookie

我想创建一个cookie:

  • 姓名:drm
  • 值:drmStatus =预期

我正在使用此问题答案中的代码 - Jquery Cookie plugin - multiple values?来创建Cookie

 var obj = { drmStatus: 'Expected' }; 
 $.cookie('drm', $.param(obj), { path: '/', raw: true })

然而,这会生成一个带有

的cookie
  • 姓名:drm
  • 值:drmStatus%3DExpected

原因是来自https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js

的代码段
config.raw ? value : encodeURIComponent(value)

这是使用配置对象中的“raw”值来决定是否对值进行编码。它似乎忽略了在options对象中传递的“raw”值的值。

所以我的问题是,我可以设置选项raw:使用jquery.cookie时的true吗?

1 个答案:

答案 0 :(得分:2)

我认为您的问题不在jquery.cookie中,而是在脚本的$.param部分。见this JSFiddle。原始选项设置正确,cookie具有您想要的值。

这应该有效:

var obj = { drmStatus: 'Expected' }; 
$.cookie('drm', decodeURIComponent($.param(obj)), { path: '/', raw: true })

编辑:我更新了Fiddle以使用您的新版本。解决方案是:

var obj = { drmStatus: 'Expected' }; 
$.cookie.raw = true;
$.cookie('drm', $.param(obj), { path: '/' });