我在客户端创建了一个cookie,并在其中添加了3个用逗号分隔的字符串值。字符串包含特殊字符。问题是,当我在后面的代码中获取cookie的值时,cookie的值如下所示:
4%2CHealth%20Related%2C%2Fmysite%2FYourKB%2FHealth-Related
我想去掉这些%符号和值..替换这些字符是唯一的方法吗?如何才能使我的cookie不包含这些值,而只包含一些特殊字符的简单文本?
编辑1
我现在正在创建这样的cookie,但问题仍然存在。请帮帮我。
$.cookie(‘我的$.cookie’,取消转义(MyString),{路径:'/‘},{过期: 30 });
发布于 2014-10-29 15:58:38
我知道这个帖子很古老,但我只是偶然遇到了它,并遇到了raw
setting。将它设置为true
为我解决了这个问题。
发布于 2011-09-30 06:34:14
为完整起见,这%xx个字符是url中不允许的某些字符的url编码。
因此:%2C是一个逗号,%2F是一个正斜杠。
考虑到这一点,您将在哪里再次检查cookie的值?
此代码可以工作,并将正确的值作为警告提供给您:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"> </script>
<script src="https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"></script>
</head>
<body>
<script language="javascript">
<!--
$(function(){
var myString = '4%2CHealth%20Related%2C%2Fmysite%2FYourKB%2FHealth-Related';
$.cookie('MyCookie', unescape(myString) );
alert($.cookie('MyCookie'));
});
-->
</script>
</body>
</html>
因此,基本上上面的代码应该可以工作,但如果您正在检查服务器,请确保您的服务器端技术也解码了该值。在ASP.NET中,当你调用Request.Cookies"MyCookie".Value时,这是自动完成的,但AFAIK浏览器只会将其作为url编码值进行传输,因此它必须在服务器上再次解码。
HTH Alex
https://stackoverflow.com/questions/7606230
复制相似问题