簡體   English   中英

使用JQuery和Cookie插件創建一個非url編碼值的cookie

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM