[英]Create a cookie with a non url encoded value using JQuery and the Cookie plugin
我在客戶端創建一個cookie,並在其中添加3個字符串值,用逗號分隔。 該字符串具有特殊字符。 問題是當我在后面的代碼中獲取cookie的值時,cookie的值如下: -
4%2CHealth%20Related%2C%2Fmysite%2FYourKB%2FHealth-Related
我想擺脫這些%的標志和價值觀..正在取代這些人物的唯一途徑? 如何讓我的cookie沒有這些值,只是帶有一些特殊字符的簡單文本?
編輯1
我現在正在創建這樣的cookie,但問題仍然存在。 請幫幫我。
$ .cookie('MyCookie',unescape(myString),{path:'/'},{expires:30});
我知道這個線程是古老的,但我剛遇到這個並遇到了raw
設置 。 將其設置為true
解決我的問題。
為完整起見,這些%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”]時自動完成的。但值AFAIK瀏覽器只會將其作為url編碼值傳輸,因此必須在服務器上再次解碼。
HTH Alex
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.