CNode

使用express的cookie-parser设置cookie时,怎么使字符串内特殊符号不被encode?

问答
Kk-jay-wang发布于10 年前最后回复10 年前6 回复4559 浏览0 收藏

在我用express设置cookie的时候,需要在cookie中存放带有" 和@的字符串,但是每次设置express都会把这些字符进行encode 如何才能让cookie里存放不被编码的字符串呢? 存的代码:

res.cookie("test", "test@qq.com", {'maxAge' : '10800000'});

结果: 2.pic.jpg

查看回复

回复 (6)

K
k-jay-wang#1·10 年前

解释一下,不考虑cookie在不同浏览器下解析不一致,也不考虑先编码再存然后在前端解码的方法。。因为之前我们的Java服务就能够存@符号,所以希望大家能帮我解开这个疑惑,为什么express就不能不转码呐。。

Q
qimenxiaozi#2·10 年前

不知道http的规范是不是cookie不用encode? From Noder

K
kenberkeley#3·10 年前

其实嘛。。。cookie都是服务端自己用,所以编成什么鬼样它都会自己识别。。。我们真的要用的时候decode一下就好了ㄟ( ▔, ▔ )ㄏ

K
k-jay-wang#4·10 年前
引用 qimenxiaozi不知道http的规范是不是cookie不用encode? From Noder

@qimenxiaozi 规范上貌似是会把特殊字符进行encode…但是我看到过有没被encode的特殊字符存在cookie里,想不通为什么会这样,虽然encode之后存cookie是更好地办法…

K
k-jay-wang#5·10 年前
引用 kenberkeley其实嘛。。。cookie都是服务端自己用,所以编成什么鬼样它都会自己识别。。。我们真的要用的时候decode一下就好了ㄟ( ▔, ▔ )ㄏ

@kenberkeley 实际证明虽然在chrome里看到的是encode后的字符串,但是前端取出来的字符串确实decode后的😄 但是看上去好不爽😢

参与回复
登录后即可参与回复。登录