字符串包含 ;.

Cookies with string containing ;

本文关键字:包含 字符串      更新时间:2023-09-26

所以我为我的网站使用 cookie(大惊喜 ;-) ),但可能令人惊讶的是,出于某种原因(不要问我为什么)我在 cookie 中存储了一些css样式的值,这一切都很好,直到你在那里添加一个不应该存在的;

所以我存储的 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;"
                        }
                    }
                }
            }
        }
    }]
}";


我得到饼干的方式是这样的:

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


我得到的结果是正确的饼干,但是它在background:red后立即被切割。正如我之前提到的,我知道为什么,我的问题是,有没有办法防止这种情况并且仍然在字符串中;。是否有某种像您在字符串中那样的转义字符:即。 '"

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

例如:

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

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