IE浏览器下使用AJAX登陆接口请求缓存与登陆不了的问题解决
由于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登陆接口请求缓存与登陆不了的问题解决相关推荐
- 360 浏览器“兼容模式”下,接口请求缓存问题解决方法
文章目录 起因 解决方案 1. 在 get 请求的 url 中增加随机标识 2. 请求设置 3. 改为 post 请求 起因 360 浏览器"极速模式"采用 Blink ( Web ...
- 在360浏览器下使用ajax无效的一点案例
今天高高兴兴的将昨天写通宵的网页放出去测试,通过了谷歌和火狐,然后是IE,甚是开心. 本以为可以收工了,结果跑到隔壁同事的机子上炫耀一下. 却碰到了钉子,他用的是360,,一个神一样的浏览器. 我的J ...
- js请求结果拦截机器_js利用jquery的jsonp来解决ajax跨域请求被浏览器拦截结果的问题...
先来个表.页面太多对不起我也不知道这张表是从哪个博客保存过来的,所以无法注明博客地址.非常抱歉.URL说明是否允许通信 http://www.a.com/a.jshttp://www.a.com/b. ...
- ajax 设置同步请求
ajax 是异步的,但是在某些特殊的情况下,需要 ajax 支持同步请求,即先执行完 ajax 请求再执行下面的代码. 可以设置 async: false 实现这个功能.示例代码 $.ajax({ur ...
- SpringCloud实战4-Hystrix线程隔离请求缓存请求合并
接着上一篇的Hystrix进行进一步了解. 当系统用户不断增长时,每个微服务需要承受的并发压力也越来越大,在分布式环境中,通常压力来自对依赖服务的调用,因为亲戚依赖服务的资源需要通过通信来实现,这样的 ...
- IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法
转载自 IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法 最近在测试兼容性问题的时候发现,使用Ajax的GET请求向后台获取响应结果时,如果是IE8浏览器,第一次发送请求时会得到正 ...
- php 响应时间,PHP下解决ajax请求服务器响应时间过长问题
PHP下解决ajax请求服务器响应时间过长的办法:首先在浏览器输入测试网址,找到Networky以及ajax发送的请求:然后找到TTFB的响应时间对应的php文件,并删掉这些代码:最后将数据库loca ...
- 为什么浏览器会限制ajax并行请求数量,有办法突破限制吗
1.为什么浏览器会限制 ajax 并行请求数量? 答:浏览器发出网络请求需要新开线程,而且可以发出请求的端口数量有限,从开销角度考虑不可能无限发出并发请求:此外如果浏览器不作限制,大量的请求同时发至服 ...
- ie11 ajax 加载提示,解决在IE11浏览器下,JQuery的AJAX方法不响应问题
在项目的时候一直都是在使用谷歌浏览器在调试,后来在现场部署到服务器上的时候,客户使用的是IE浏览器,版本是11 在测试的过程中,出现几个问题,虽然是几个问题,但是问题的原因就是AJAX第一次响应,第二 ...
最新文章
- C++函数指针 学习笔记
- c语言铁路托运行李费用图,3.为铁路部门编写计算运费的程序。假设铁路托运行李,规定每张客票托运费计算方法是:行李重量不超过50kg...
- Python基础(三)--序列
- redis学习及实践3---Jedis、JedisPool、Jedis分布式实例介绍
- 实战课堂:一则CPU 100%的故障分析处理知识和警示
- 将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子
- postgre查询表最后更新日期_Power BI 10月份功能更新浅译
- 【SQL Server】CONVERT() 函数
- 面向对象和结构化程序设计的区别
- 咪咕音乐播放器 ubuntu 安装详解
- 使用Kinect V2进行录制视频
- 怎么样才能在服务器显示皮肤,服务器怎么使用皮肤
- SpringSession实战项目(基于SpringBoot项目)【附源码】
- 腾讯云开发环境部署系列教程一 【申请免费的腾讯云主机】
- python中获得字符串s长度的方法是什么_获得字符串s长度的方法是什么?【 】(8.0分)_学小易找答案...
- 【社交网络】映射主题网络:从两极分化的人群到社区集群(二)
- Android短信转发默认不需要转发号码修改方法
- 植物的地上地下竞争模型--一次纸上实验
- 黑客教父郭盛华:警惕电脑被植入硬件键盘记录器
- 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第1章1.2节安装BackTrack到硬盘...