2016-03-15 131 views
0

所以我爲我的網站使用cookies(大驚喜;-)),但是令人驚訝的是我出於某種原因(不要問我爲什麼)在Cookie中存儲了一些css樣式值,這些都是罰款和花花公子,直到你添加一個;在那裏不應該在那裏。包含字符串的Cookie;

所以我存儲cookie的是這樣的:

token=9d133691-a955-4980-bf1d-9492d3c64026; 
user=2601; 
config=JSON"{ 
    "socketAddress":"string", 
    ... 
    bunch more values 
    ... 
    "views":[{ 
     "showInMenu":true, 
     "route":"Opgave Liste", 
     "routeParameters":{"afdeling":true}, 
     "viewFunctions":{ 
      "itemList":{ 
       "css":{ 
        "class":"bold", 
        "conditional":{ 
         "condition":"[REG.TASK] === 'off'", 
         "false":{ 
          "style":"background:red;" 
         } 
        } 
       } 
      } 
     } 
    }] 
}"; 


和我得到的cookie中的方式是這樣的:

<script> 
     function readCookie(){ 
      var cookie = document.cookie; 
      console.info('base cookie : ', cookie); 
     } 
     readCookie(); 
    </script> 


我得到的結果是正確的餅乾,但它是切割鑽機在background:red之後。正如我前面提到的,我知道爲什麼,我的問題是,是否有辦法防止這種情況,並且字符串中仍然有;。有沒有像字符串中的某種轉義字符:ie。 \"

回答

1

在進行JSON字符串化之前嘗試使用encodeURIComponent(css),然後使用decodeURIComponent以獲得實際值。

例如:

{ 
    "style": encodeURIComponent("background:red;") 
} 

(可以/應當自動處理與效用函數此過程)。