2011-09-30 30 views
3

我在客戶端創建一個cookie並在其中添加3個字符串值,並用逗號分隔。該字符串具有特殊字符。問題是,當我在我的代碼獲取了cookie的值的背後,該cookie值,如下所示: -使用JQuery和Cookie插件創建一個具有非url編碼值的cookie

4%2CHealth%20Related%2C%2Fmysite%2FYourKB%2FHealth-Related 

我想擺脫這些跡象%和價值觀。是取代這些字符唯一辦法?我怎樣才能讓我的cookie沒有這些值,只是簡單的文字和一些特殊字符?

編輯1

我現在正在創建這樣的cookie,但問題仍然存在。請幫助我。 $'cookie'('MyCookie',unescape(myString),{path:'/'},{expires:30});}};

+0

你也可以考慮使用jquery的cookie插件。 – Cliff

+0

@崖:這就是我用過的。 – Infinity

回答

0

爲了完整,這些%xx字符是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 亞歷

1

我知道這個線程是古老的,但我只是碰到了這一點,並在整個raw setting來了。將其設置爲true解決了我的問題。

相關問題