2016-03-15 127 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;") 
} 

(可以/应当自动处理与效用函数此过程)。