在设置cookie时遇到的一个坑:用的flask写了一个web demo,我在js代码里设置了cookie,用flask的方法获取cookie,由于js和flask设置cookie的默认path不一样导致我获取cookie失败~
js设置cookie:
document.cookie = name+"="+"; path=/";
注意!!! 这里如果不指定path,则使用如下规则:
- 当cookie的path设置了值不为null的时候,以设置的值为准。
- 当cookie的path为null时候,获取请求的URI的path值
- 当URI的path值是以“/”结尾的时候,直接设置为cookie的path值
- 当URI的path值不是以“/”结尾的时候,查看path里面是否有“/”
如果有“/”的话,直接截取到最后一个“/”,然后设置为cookie的path值。
如果没有“/”的话,将cookie的path设置为”/”。
我就是没有指定path,所以默认给我设置到了另一个路径下,导致获取到了错误的数据!
flask设置cookie:
resp = make_response({"success": True, "msg": "Did logout!"})
resp.set_cookie("token", token, path='/')
return resp
注意!!!flask如果不指定path,那么它默认的就是’/‘ .
flask获取cookie:
token = request.cookies.get('token')
网友评论