【问题标题】:ampersand(&) replaced by %26 value in Cookies& 被 Cookies 中的 %26 值替换
【发布时间】:2019-09-22 11:21:03
【问题描述】:

ampersand(&) 替换为 %26 值。

我在代码中设置了 cookie 值 TEST&123&223,但在浏览器中,cookie 值替换为 TEST%26123%26223。

我正在尝试在角度代码中设置 cookie 值。我用过第三方库 https://www.npmjs.com/package/ngx-cookie-service.

有没有办法告诉浏览器,不要解码cookies中的字符串值?

【问题讨论】:

    标签: javascript angular vue.js


    【解决方案1】:

    我认为您应该在存储数据之前对其进行编码(在 JavaScript 中它将是 encodeURI('&') 但是如果您在服务器上使用其他语言,它可能是不同的命令,但想法保持不变)。

    那么你应该在读取值时解码cookie(decodeURI(string))。

    【讨论】:

      【解决方案2】:

      浏览器与您的问题没有任何关系:TEST%26123%26223 是一个编码值。您正在使用的第 3 方库正在对您的 cookie 的值进行编码。

          let cookieString: string = encodeURIComponent( name ) + '=' + encodeURIComponent( value ) + ';';
      

      (从库的 github 存储库中提取:https://github.com/7leads/ngx-cookie-service/blob/master/lib/cookie-service/cookie.service.ts

      编码cookie值不是坏事,其实推荐:Should cookie values be URL encoded? 如果要检索原始值,则需要对其进行解码(您使用的库正在解码 get 函数中的 cookie 值)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多