gpt4 book ai didi

javascript - Internet Explorer 在使用 ajax 登录状态检查时强制返回 304

转载 作者:行者123 更新时间:2023-11-29 18:32:44 26 4
gpt4 key购买 nike

我在为我的公司创建的演示站点中遇到了一个特定于 IE 的 ajax 登录状态请求问题。

在每个 Internet Explorer 浏览器 (7-9) 中,都会出现此问题,而它在所有其他浏览器中都表现出色:

成功登录后,用户将被重定向到触发登录状态请求的登录页面。

如果此登录状态请求返回的不是“1”,则页面将重定向回登录页面。

如果您关注开发人员工具中的流量,您会看到针对该特定状态检查的请求导致 304 未修改(永远不会发生),并且请求正文显示为 EMPTY。 (它总是返回 0 或 1)...

硬刷新 (CTRL-F5) 页面并检查其中,仍然会导致浏览器返回 304。

使用 fiddler 跟踪那些 304 表明甚至没有通过网络请求该登录状态 URL,浏览器本身假设 304,并且未能发送请求。

当直接访问 url 时,响应始终是 200,预期会出现适当的 0 或 1,但是当使用 ajax 时,它通常是 304,并且永远不会通过网络发送甚至确认 304 来自服务器。

清除浏览器历史似乎对是否将 304 更改为 200 没有影响。

更奇怪的是,每尝试 10 次左右,这实际上是有效的,请求返回 200 并有真正的响应,但更多时候它返回 304 没有响应,并且该值不等于 1缓存值(甚至不确定它等同于什么?!)

我已更改对此请求的响应,使 php 生成以下 header :

header('Cache-Control: no-cache');
header('Pragma: no-cache');
header('Expires: -1');

在 IE 中直接访问 URL 时,这些 header 存在,当出现 304 时,它们不存在。

就好像 IE 正在主动忽略该特定请求...

有什么想法吗?

同样,这在所有其他浏览器中都有效,但在各种风格的 IE 中都有效。

最佳答案

尝试向您的状态请求的 url 添加一个随机查询字符串参数。喜欢:

'/your/url?breakcache='+Math.random()

关于javascript - Internet Explorer 在使用 ajax 登录状态检查时强制返回 304,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com