IISExpress 跨域cookie的奇怪问题

在使用IISExpress和不同浏览器环境下,开发人员在两个网站间进行SetCookie和GetCookie操作时遇到问题。尽管大部分情况下正常工作,但偶尔在部署为IISExpress和IIS的混合组合时,首次SetCookie后的GetCookie会返回旧值,引发跨域设置cookie失败的错觉。尝试了多种部署方式后,发现使用IIS部署两者总是成功,但具体原因未明。
摘要由CSDN通过智能技术生成

测试环境

WIN10,IIS 10,IISExpress 10,Chrome 120,Microsoft Edge 114

网站A 端口7001

只有1个Default.aspx,无前端代码。逻辑很简单,SetCookie用来把客户端传过来的值写入到cookie中,GetCookie用来将客户端传过来的cookie值再返回给客户端。

 Page_Load事件代码

网站B 端口7002

只有1个Default.aspx,只有前端代码。SetCookie按钮用ajax将随机数传给服务端,GetCookie按钮用来将cookie发给服务端再返回cookie值

 View Code

正常情况

正常情况下,先点击SetCookie按钮再点击GetCookie按钮,会是下图的情况,GetCookie获取到的值是SetCookie发送的值

异常情况

当两个网站都用IISExpress部署时,就会发生奇怪的事情

第一次操作时,SetCookie成功,但是GetCookie却是上一次的值,给人的感觉是浏览器设置cookie没成功。后面连续又操作了多次,却都是成功的。
我把IISExpress重新部署多次测试发现,上面的情况是偶发的,有时候一直正常,有时候第一次操作会出现设置cookie没成功的情况。
直接访问7001端口的网站,不跨域,就每次都是成功的。

我又换了多种不同的部署方式:

IISExpress部署7001网站A,IIS部署7002网站B,依然会偶发出现。
IIS部署7001网站A,IISExpress部署7002网站B,每次都成功。
都用IIS部署,每次都成功。

使用Chrome和Edge都是一样的效果,网上搜了下也没找到解决方案。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值