【问题标题】:Can I set the option raw: true when using jquery.cookie我可以在使用 jquery.cookie 时设置选项 raw: true
【发布时间】:2012-10-25 00:38:06
【问题描述】:

我想创建一个 cookie:

  • 姓名:drm
  • 值:drmStatus=Expected

我正在使用此问题答案中的代码 - 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的sn-p

config.raw ? value : encodeURIComponent(value)

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

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

【问题讨论】:

    标签: jquery cookies jquery-cookie


    【解决方案1】:

    我认为您的问题不在 jquery.cookie 中,而是在脚本的 $.param 部分。见this JSFiddle。 raw 选项设置正确,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: '/' });
    

    【讨论】:

    • 感谢您的回答。您提供的 JSFiddle 可以完美运行,但是 jquery.cookie.js 的版本不同。当我使用raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js 的版本尝试您的示例时,它不起作用。你从哪里得到那个版本的库?如果它解决了我的问题,我可能会更改为该版本。
    • 是的,我没有意识到不同的版本。我的版本来自这里:(code.google.com/p/litepublisher/source/browse/trunk/js/plugins/…)。它似乎比你的版本更旧。但它没有混淆configoptions变量的错误。
    • 我将从Litepublisher(在 migg 的原始 JSFiddle 中)更改为 jquery.cookie.js 的版本,因为这似乎比必须设置 config.raw 值更直观。
    猜你喜欢
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    相关资源
    最近更新 更多