Bottle,如何在 AJAX 请求期间 get_cookie(同一域)

Bottle, how to get_cookie during AJAX request (same domain)

我使用 bottle set/get cookie 机制来跟踪我的 user_id(在调用 set/get_cookie()
时使用 'secret' 参数 在正常的 http(s) 请求期间一切都很好但是在发出 xhr 请求时(相同域)user_id = request.get_cookie('user_id', secret='mysecret') returns None.
检查客户端浏览器时,cookie 和 key/value 仍然可用。

如何处理?
(我一直被告知 xhr 请求是 http 请求,所以来自同一个域的 cookie 应该共享,不是吗?是 Bottle 'secret' 处理引起的问题吗?)

我在 AJAX 请求下尝试 set_cookies('test', 123, secret='mysecret'),成功了,但仍然找不到以前的 cookie。

然后我说我以前的 cookie,称为 cook1 和 cook2,写在 'normal' http 请求下,如果它们有相同的域,则有不同的 'path'(在 Chrome 资源浏览器下).它们设置在路径“/XXX/dev”下,而我的 AJAX 请求就在路径“/XXX”
下 所以我将 /XXX/do_stuff 的 AJAX 请求修改为指向“/XXX/dev/do_stuff”,然后,惊喜!我的 AJAX 请求可以读取 cook1 和 cook2。

不确定这是 Bottle 错误还是这种行为是故意设计的(在这种情况下,如果有人可以向我解释为什么......),但至少我有我的解决方案。

文档指出,设置 cookie 时默认路径是“/” https://bottlepy.org/docs/dev/tutorial.html#tutorial-cookies

path: Limit the cookie to a given path (default: /)

但是代码注释说默认是 "current path" 例如/XXX/dev https://github.com/bottlepy/bottle/blob/master/bottle.py#L1796

:param path: limits the cookie to a given path (default: current path)

基于此行为,我们可以假设后者是正确的。

因此,在设置 cookie 时,如果您希望任何路径都可以从您的域访问 cookie。将 cookie 中的路径设置为“/”

set_cookies('test', 123, secret='mysecret', path='/')