由于IE浏览器自己本身的原因,当你请求的接口没有变化的时候他会默认从缓存中去读取数据,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题,以及介绍几种解决方案。

1.在URL后面加上一个随机数: "?rand=" + Math.random() 

由于IE针对Ajax请求的返回的结果是根据请求地址进行缓存的,所以如果不希望这个缓存机制生效,我们可以在每次请求时为请求地址添加不同的后缀来解决这个问题。针对这个例子,我们通过如下的代码为请求地址添加一个基于当前时间的查询字符串,再次运行程序后IE中将会显示实时的时间。

   1: <!DOCTYPE html>
   2: <html>
   3:     <head>        
   4:         <script type="text/javascript">
   5:             $(function () {
   6:                 window.setInterval(function () {
   7:                     $.ajax({
   8:                         url:'@Url.Action("GetCurrentTime")?'+ new Date().toTimeString() ,
   9:                         success: function (result) {
  10:                             $("ul").append("<li>" + result + "</li>");
  11:                         }
  12:                     });
  13:                 }, 5000);
  14:             });
  15:         </script>
  16:     </head>
  17: </html>

2.在URL后面加上一个随机数: "?rand=" + Math.random() 



3.通过jQuery的Ajax设置解决问题

如果是使用jQuery,可以在开始的时候设置,清除缓存,$.ajaxSetup({cache:false})

实际上jQuery具有针对这个的Ajax设置,我们只需要按照如下的方式调用$.ajaxSetup方法禁止掉Ajaz的缓存机制。

   1: <!DOCTYPE html>
   2: <html>
   3:     <head>        
   4:         <script type="text/javascript">
   5:             $(function () {
   6:                 $.ajaxSetup({ cache: false }); 
   7:                 window.setInterval(function () {
   8:                     $.ajax({
   9:                         url:'@Url.Action("GetCurrentTime")',
  10:                         success: function (result) {
  11:                             $("ul").append("<li>" + result + "</li>");
  12:                         }
  13:                     });
  14:                 }, 5000);
  15:             });
  16:         </script>
  17:     </head>
  18: </html>

IE浏览器下使用AJAX登陆接口请求缓存与登陆不了的问题解决相关推荐

  1. 360 浏览器“兼容模式”下,接口请求缓存问题解决方法

    文章目录 起因 解决方案 1. 在 get 请求的 url 中增加随机标识 2. 请求设置 3. 改为 post 请求 起因 360 浏览器"极速模式"采用 Blink ( Web ...

  2. 在360浏览器下使用ajax无效的一点案例

    今天高高兴兴的将昨天写通宵的网页放出去测试,通过了谷歌和火狐,然后是IE,甚是开心. 本以为可以收工了,结果跑到隔壁同事的机子上炫耀一下. 却碰到了钉子,他用的是360,,一个神一样的浏览器. 我的J ...

  3. js请求结果拦截机器_js利用jquery的jsonp来解决ajax跨域请求被浏览器拦截结果的问题...

    先来个表.页面太多对不起我也不知道这张表是从哪个博客保存过来的,所以无法注明博客地址.非常抱歉.URL说明是否允许通信 http://www.a.com/a.jshttp://www.a.com/b. ...

  4. ajax 设置同步请求

    ajax 是异步的,但是在某些特殊的情况下,需要 ajax 支持同步请求,即先执行完 ajax 请求再执行下面的代码. 可以设置 async: false 实现这个功能.示例代码 $.ajax({ur ...

  5. SpringCloud实战4-Hystrix线程隔离请求缓存请求合并

    接着上一篇的Hystrix进行进一步了解. 当系统用户不断增长时,每个微服务需要承受的并发压力也越来越大,在分布式环境中,通常压力来自对依赖服务的调用,因为亲戚依赖服务的资源需要通过通信来实现,这样的 ...

  6. IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法

    转载自  IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法 最近在测试兼容性问题的时候发现,使用Ajax的GET请求向后台获取响应结果时,如果是IE8浏览器,第一次发送请求时会得到正 ...

  7. php 响应时间,PHP下解决ajax请求服务器响应时间过长问题

    PHP下解决ajax请求服务器响应时间过长的办法:首先在浏览器输入测试网址,找到Networky以及ajax发送的请求:然后找到TTFB的响应时间对应的php文件,并删掉这些代码:最后将数据库loca ...

  8. 为什么浏览器会限制ajax并行请求数量,有办法突破限制吗

    1.为什么浏览器会限制 ajax 并行请求数量? 答:浏览器发出网络请求需要新开线程,而且可以发出请求的端口数量有限,从开销角度考虑不可能无限发出并发请求:此外如果浏览器不作限制,大量的请求同时发至服 ...

  9. ie11 ajax 加载提示,解决在IE11浏览器下,JQuery的AJAX方法不响应问题

    在项目的时候一直都是在使用谷歌浏览器在调试,后来在现场部署到服务器上的时候,客户使用的是IE浏览器,版本是11 在测试的过程中,出现几个问题,虽然是几个问题,但是问题的原因就是AJAX第一次响应,第二 ...

最新文章

  1. C++函数指针 学习笔记
  2. c语言铁路托运行李费用图,3.为铁路部门编写计算运费的程序。假设铁路托运行李,规定每张客票托运费计算方法是:行李重量不超过50kg...
  3. Python基础(三)--序列
  4. redis学习及实践3---Jedis、JedisPool、Jedis分布式实例介绍
  5. 实战课堂:一则CPU 100%的故障分析处理知识和警示
  6. 将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子
  7. postgre查询表最后更新日期_Power BI 10月份功能更新浅译
  8. 【SQL Server】CONVERT() 函数
  9. 面向对象和结构化程序设计的区别
  10. 咪咕音乐播放器 ubuntu 安装详解
  11. 使用Kinect V2进行录制视频
  12. 怎么样才能在服务器显示皮肤,服务器怎么使用皮肤
  13. SpringSession实战项目(基于SpringBoot项目)【附源码】
  14. 腾讯云开发环境部署系列教程一 【申请免费的腾讯云主机】
  15. python中获得字符串s长度的方法是什么_获得字符串s长度的方法是什么?【 】(8.0分)_学小易找答案...
  16. 【社交网络】映射主题网络:从两极分化的人群到社区集群(二)
  17. Android短信转发默认不需要转发号码修改方法
  18. 植物的地上地下竞争模型--一次纸上实验
  19. 黑客教父郭盛华:警惕电脑被植入硬件键盘记录器
  20. 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第1章1.2节安装BackTrack到硬盘...

热门文章

  1. Windows 使用键盘移动窗口
  2. 患上“远见病”的VR,不得不走进动物世界
  3. 超分辨率分析(三)--端到端监督类深度学习方案综述
  4. 仿360影视网站模板html
  5. 层次分析法AHP——清风老师
  6. animate.css在vue中进行路由切换时的转场动画
  7. 【智能零售】2018年新零售商业的四大趋势
  8. 使用Java编写自己的区块链
  9. 区块链笔记:典型应用:数据资产、交易系统、即时通信、链上游戏、追踪溯源等
  10. 外企iOS开发的笔试题