jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Jquery Cookie插件 – 多个值?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用流行的jquery Cookie插件 https://github.com/carhartl/jquery-cookie
想知道如何设置和读取具有多个值的cookie?或者也许可以添加/删除该cookie的值?

$.cookie(“MyTESTCookie”,email,{expires:10});

我想在同一个cookie中添加用户名

更新:只是.Net Storing multiple values in cookies中的一个示例

解决方法

如果要设置具有多个值或“子键”的cookie并使其可从.NET中读取,则需要将子项存储为格式化为查询字符串的名称 – 值对.您可以使用jQuery.@R_72_1403@方法将Javascript对象转换为查询字符串.
var obj = { email: 'jdoe@example.com',username: 'jdoe' };
$.cookie("MyTESTCookie",$.param(obj),{ expires: 10 });

然后在服务器上,您可以访问以下值:

var email = request.Cookies["MyTESTCookie"]["email"];
var username = request.Cookies["MyTESTCookie"]["username"];

编辑:我创建了一个测试页面,显示在服务器和客户端上读/写多值cookie. http://www.systemex.net/Cookies/

笔记:

>您需要注意转义和取消子键.这样任何嵌入式=和&处理得当
>在读取和编写jquery cookie时,请使用选项{raw:truE},这样它就不会双重转义.
>我写了一个$.deparam函数,它将name = value& name2 = value2字符串转换为Javascript对象{name:value,name2:value2}
>最后一件事,jquery cookie插件不会覆盖具有相名称的cookie,它只是将其附加到当前cookie集合中.此时,重写插件支持子键和修改现有cookie可能会更好.

无论如何希望这有帮助.

这是Default.aspx

<h1>Get Cookie From Server:</h1>
<ul>
<li>Email: <%= GetCookie("MyTESTCookie","email")%></li>
<li>Username: <%= GetCookie("MyTESTCookie","username")%></li>
</ul>
<h1>Get Cookie From Client:</h1>
<ul>
<li>Email: <span class="cookie" data-name="MyTESTCookie" data-key="email" /></li>
<li>Username: <span class="cookie" data-name="MyTESTCookie" data-key="username" /></li>
<li>Raw: <span id="raw" /></li>
</ul>
<h1>Set Cookie From Client:</h1>
<ul>
<li>Email: <input type="text" name="email" value="" /></li>
<li>Username: <input type="text" name="username" value="" /></li>
</ul>
<input type="submit" value="Submit" />

<script>

    $(function () {
        $(".cookie").each(function (indeX) {
            var name = $(this).data('name');
            var key = $(this).data('key');
            var cookie = $.deparam($.cookie(name,{ raw: true }));

            $(this).html(cookie[key]);
        });
        $('#raw').text(escape($.cookie("MyTESTCookie"),{ raw: true }));


        $("form").submit(function () {
            var o = {};
            o.email = $('input[name=email]').val();
            o.username = $('input[name=username]').val();
            var value = $.param(o);
            var cookie = $.cookie('MyTESTCookie',value,{ raw: true });
            return true;
        });
    });

    jQuery.deparam = function (params) {
        var o = {};
        if (!params) return o;
        var a = params.split('&');
        for (var i = 0; i < a.length; i++) {
            var pair = a[i].split('=');
            o[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
        }
        return o;
    }

</script>

Default.aspx.cs

protected void Page_Load(object sender,EventArgs E)
{
    if (!Page.IsPostBACk)
    {
        var cookie = new httpCookie("MyTESTCookie");
        cookie["email"] = httpUtility.UrlEncode("jdoe@example.com");
        cookie["username"] = httpUtility.UrlEncode("jdoe&123");
        Response.Cookies.Add(cookiE);
    }
}

public String GetCookie(String name,String key)
{
    var cookie = request.Cookies[name];
    return cookie != null ? httpUtility.UrlDecode(cookie[key]) : "";
}

大佬总结

以上是大佬教程为你收集整理的Jquery Cookie插件 – 多个值?全部内容,希望文章能够帮你解决Jquery Cookie插件 – 多个值?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。