为了账号安全,请及时绑定邮箱和手机立即绑定

延迟是在 IE 11 上保存会话变量吗?

延迟是在 IE 11 上保存会话变量吗?

三国纷争 2021-11-12 15:04:02
我有一个应用程序,它使用 Ajax 调用来使用 PHP 脚本获取会话变量。在所有浏览器中,这都可以完美运行,但在 IE 11 中,它仅在页面重新加载后才能运行。因此,当页面加载时,Ajax 调用返回 null,但当我重新加载页面时,它确实返回。$.ajax({    type: "GET",    url: "/ajax/fetch/session",    success: function(data) {        obj_fields = $.parseJSON(data);        console.log(obj_fields);    }});当我在多页表单上使用它时,当每个页面的值首先存储在会话中时,我注意到,例如,当我填写第一页,提交下一页时,我需要重新加载以获取会话。从第 2 页到第 3 页,加载了第 1 页的会话变量,但仅在重新加载页面后才从第 2 页存储的会话变量。我唯一能想到的是 IE 需要一段时间才能在会话中存储变量。这样对吗?我怎样才能最好地解决这样的问题?或者 Ajax 调用的返回值以某种方式缓存在 IE 中?在执行 Ajax 调用之前,我已经尝试了 5 秒的延迟,但这也不起作用。仅在页面重新加载时
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

默认情况下缓存设置为 true,尝试禁用如下:


$.ajax({

    type: "GET",

    url: "/ajax/fetch/session",

    cache: false,

    success: function(data) {

        obj_fields = $.parseJSON(data);

        console.log(obj_fields);

    }

});

缓存(默认值:true,对于 dataType 'script' 和 'jsonp' 为 false) 类型:Boolean 如果设置为 false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为 false 仅适用于 HEAD 和 GET 请求。它的工作原理是将“_={timestamp}”附加到 GET 参数。其他类型的请求不需要该参数,除非在 IE8 中对已由 GET 请求的 URL 进行 POST。


https://api.jquery.com/jquery.ajax/


查看完整回答
反对 回复 2021-11-12
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

这可能是服务器机器名称的问题。相信我 Internet Explorer 似乎是一个垃圾。

我过去有过这样的经历。

您将需要调查服务器计算机的名称。Internet Explorer 总是遇到带有“-”或“_” 或任何其他奇怪字符的机器名称的问题,因此,IE 无法轻松维护 php 会话。

您需要确保机器名称没有IE无法识别的字符。或者您可以更好地使用服务器 Ipaddress 代替机器名称。

例如,像2_6.nancy.com这样的机器名称将不起作用,但26.nancy.com可以,等等......


查看完整回答
反对 回复 2021-11-12
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信