【问题标题】:Http call won't send cookiesHttp 调用不会发送 cookie
【发布时间】:2020-07-19 14:28:19
【问题描述】:

我有一个 Angular 应用程序(端口 4200)和一个烧瓶 python 后端(端口 8080),它们都在本地主机上运行和通信。 由于我在设置后端需要的 cookie 时遇到问题,我调整了 /etc/hosts 文件并为两个应用程序添加了域:

127.0.0.1       app.localhost.com
127.0.0.1       server.localhost.com

之后我可以成功设置 cookie,但我使用 app.localhost.com url 访问的 Angular 应用程序仍然不会随请求发送 cookie(参见图片)。

我尝试在加载应用时在前端设置cookie:

document.cookie = 'test' + '=' + 'access' + ';domain=localhost.com; path=/';

我尝试将cookie设置为后端的api调用

@application.route("/api/v1/cookies")
def set_cookie_role():
    resp = make_response('Set cookie', 200)
    resp.set_cookie('test', '12345', domain='localhost.com')
    return resp

【问题讨论】:

    标签: angular google-chrome http cookies


    【解决方案1】:

    您必须将应用程序中 cookie 的域设置为

    localhost.com

    而不是.localhost.com,以便app.localhost.com 作为子域可以获取域的cookie。

    【讨论】:

    • Chrome 和 Firefox 确实添加了 '.'在域的开头自动所以我无法将域设置为 localhost.com 我将代码添加到我的问题中
    • 能否将在响应头中设置cookie的代码发布到浏览器
    • 浏览器会在每个请求中发送属于域的cookie,为什么我应该将它们设置在请求的标头中?
    • @DarioDigregorio,我正在与您核对代码,以便在 response 而不是 request 中设置 cookie
    • 我不确定我是否正确理解了您的问题,但我使用代码编辑了我的问题,该代码用于将后端的 cookie 设置为响应,并将前端的 cookie 设置为请求
    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2011-12-16
    • 2015-07-13
    • 2018-01-08
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    相关资源
    最近更新 更多