js ajax https,通过HTTPS的HTTP Cookie和Ajax请求

博客讨论了在HTTPS环境下,浏览器在跨域Ajax请求中如何处理Cookie的问题。作者遇到的情况是,当从HTTP切换到HTTPS进行Ajax请求时,浏览器没有携带Cookie,导致服务器无法识别。解决方案是在Ajax请求中设置`withCredentials: true`,以允许跨域请求携带Cookie。
摘要由CSDN通过智能技术生成

我知道之前已经以各种形式提出过这个问题,但我似乎无法解决这个问题。

我已经尝试使用jQuery和本机JS API来发出Ajax请求。

我的情况如下(见附图):

浏览器发出HTTP请求

服务器响应并设置持久性Cookie

浏览器发出HTTP Ajax请求,Cookie就没问题了

服务器按预期响应,更新Cookie

浏览器发出HTTPS Ajax请求,Cookie不再存在(?!)

服务器提供"默认"响应,因为没有Cookie(意外行为)

在任何人开始关于跨域请求的讲座之前,请先说明一些事情:

我知道这是一个跨域请求(不同的协议),这就是服务器在响应中设置Access-Control-Allow-Origin标头的原因(我使用的是Chrome和Firefox,两者都支持CORS)

但我也知道,HTTP cookie应该可以通过HTTPS进行管理(参见此处),因为主机是相同的

(编辑)为一般域(例如.domain.ext)正确设置cookie,并且HttpOnly和Secure标志都没有设置

那么,为什么,为什么,为什么浏览器在进行HTTPS Ajax调用时不会传递cookie?有任何想法吗?我快要忘了......

+-----------+ HTTP Request     +-----------+

|Browser    |+---------------->|Server     |

+-----------+                  +----

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值