含有字符串的饼干;

时间:2016-03-15 16:53:50

标签: javascript json cookies

所以我在我的网站上使用cookies(大惊喜;-)),但可能令人惊讶的是我出于某种原因(不要问我为什么)存储一些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>


我得到的结果是正确的cookie,但是它在background:red之后被切断。正如我之前提到的,我知道为什么,我的问题是,有没有办法防止这种情况,并且仍然在字符串中有;。在字符串中是否存在某种类型的转义字符:即。 \"

1 个答案:

答案 0 :(得分:1)

在执行JSON字符串化之前尝试使用encodeURIComponent(css),然后使用decodeURIComponent来获取实际值。

例如:

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

(您可以/应该使用实用程序功能自动执行此过程。)