【问题标题】:Cookie set by asynchronous HTTPS request not showing up由异步 HTTPS 请求设置的 Cookie 未显示
【发布时间】:2013-02-10 03:06:25
【问题描述】:

我有一个网站,它使用异步 http 请求(ajax,使用常见的误称)来执行登录和注册。身份验证 cookie 由异步请求设置,一切正常。

我最近锁定了需要 https 的注册和登录操作。一切似乎都可以正常工作,除了返回的身份验证 cookie 无法正常运行并且用户实际上没有登录。

在 Chrome 中,在开发工具中的资源下,它不显示任何已创建的 cookie。如果我转到 Chrome 设置并查看所有 cookie,我可以看到一个 cookie 已创建。也许它已加密且不可读?

所以,总结一下:

  • 初始页面使用普通 HTTP 加载
  • 登录操作是异步 HTTPS 请求
  • HTTPS 请求返回的身份验证 cookie 似乎不起作用

如何让它工作?

我应该注意几点:

  • 这不是 CORS 问题。
  • 我知道潜在的中间人攻击。本网站不包含敏感数据。我正在尝试做一些与 reddit 所做的非常相似(如果不完全相同)的事情。

【问题讨论】:

    标签: ajax asp.net-mvc http cookies https


    【解决方案1】:

    我设法弄明白了。原来,在 Http 响应中,您需要将 Access-Control-Allow-Credentials 标头设置为 true。此外,您必须在客户端 http 请求上将 withCredentials 设置为 true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-03
      • 2015-12-21
      • 2019-09-11
      • 1970-01-01
      • 2014-12-16
      • 2017-12-04
      • 1970-01-01
      • 2016-05-06
      相关资源
      最近更新 更多