0

我想创建一个 cookie:

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

我正在使用这个问题的答案中的代码 - Jquery Cookie 插件 - 多个值?创建 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)

这是使用配置对象中的“原始”值来决定是否对该值进行编码。它似乎忽略了选项对象中传递的“原始”值的值。

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

4

1 回答 1

2

我认为您的问题不在 jquery.cookie 中,而是在$.param脚本的一部分中。请参阅此 JSFiddle。raw 选项设置正确,cookie 具有您想要的值。

这应该有效:

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

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

var obj = { drmStatus: 'Expected' }; 
$.cookie.raw = true;
$.cookie('drm', $.param(obj), { path: '/' });
于 2012-10-23T16:46:06.627 回答