首页 > 解决方案 > 脚本无法读取 Cookie

问题描述

我正在尝试使用该js-cookie包通过以下 Javascript 代码从浏览器中读取 cookie。但是,cookie 没有被读取。

import Cookies from 'js-cookie';
var cookie_name = 'cookie';
var cookie = Cookies.get(cookie_name);
console.log(cookie);

cookie 是使用以下 Python 代码创建的,该代码利用Flask.

response.headers.add('Access-Control-Allow-Headers', 'Content-Type, text/plain')
response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
response.headers.add('Access-Control-Allow-Credentials', 'true')
response.set_cookie(key='cookie',
                value=payload,
                domain='<url>')

Flask 应用程序具有以下参数

app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SESSION_COOKIE_HTTPONLY'] = False

上面我已经关闭了HttpOnly标志,所以我的脚本应该能够读取 cookie。我也看不到console.log(document.cookie)在浏览器中使用的 cookie。我的JS代码无法读取cookie有什么原因吗?

标签: javascriptreactjsgoogle-chromecookiesflask

解决方案


如果您在浏览器控制台中看不到 cookie,则意味着它没有被设置或仅使用 HTTP 设置。

SESSION_COOKIE_HTTPONLY应该只影响 Flask 设置的会话 cookie,看起来您正在尝试完全设置不同的 cookie。

我会:

  1. 确认 cookie 确实被设置(您可以通过开发工具检查)
  2. 如果它正在设置,并且以某种方式设置为仅打开 HTTP,请更改您的代码:

...

response.set_cookie(key='cookie', value=payload, domain=<url>, httponly=False)

推荐阅读