IE浏览器 get请求缓存问题

场景:

  比较简单是使用的SpringMVC框架,在做资源国际化的时候,遇到了这个问题。具体做的操作是在页面上点击切换语言的时候,需要发起请求在Controller中切换Locale。

问题:

  1.开始的时候使用jquery的$.get()方法,在chrome上没有问题可以正常的发起请求;

  2.然后在IE中测试的时候,请求的handler会正常运行,但是语言却没有切换成功,调试的时候发现,请求根本没有进入到Controller,自然Locale根本没有切换。

原因:

  在网上查找资料后问题的原因是:在IE系列下,$.get()方法在url地址固定时,会缓存返回结果

解决方法:

  a.最简单的方法是将get请求换成post请求(亲测可用)

  b.在URL参数中加入可变的参数,例如Random

  c.在浏览器中设置不进行缓存

  d.其他解决方案链接

时间: 2024-10-09 15:47:59

IE浏览器 get请求缓存问题的相关文章

IE 浏览器 GET 请求缓存问题

问题描述 IE 浏览器(笔者使用的版本是 IE 11)在发起 GET 请求,当参数一样时,浏览器会直接使用缓存数据,这样对于实时性有要求的数据不适用.笔者在使用 Chrome 或 FF 时发现浏览器并未发现 GET 请求的缓存问题 解决 方案一 最简单的方法在我们的 get 请求后面添加一个参数 t = 时间戳 t = new Date().getTime(); 方案二 还有一种方法就是在请求标头里放两个 k-v ['Cache-Control'] = 'no-cache'; ['Pragma'

get请求在ie浏览器下有缓存

今天做项目的时候,数据库有新数据更新后,发现页面的行为却没有更新: 打断点调试的时候,发现程序也不进方法: 最终发现是因为请求数据的时候使用了get请求,而且在IE10下导致的: 注:IE浏览器中使用get请求,如果每次url一致,浏览器会使用缓存的值,而不去服务区获取最新的数据: 为了避免行为不一致:可以使用以下3种办法: 1.在url后面添加一个随机数或guid; 2.使用ajax get 请求,将cache设置为false; 3.直接改用post请求:

ie浏览器下,get请求缓存问题

1 使用get请求数据 1)Java代码 $.getJSON("sortShow!sortShow?time="+new Date().getTime(),function(){}); 开始我是直接这样写的 Java代码 $.getJSON("sortShow!sortShow,function(){}); 所以刷新的时候IE 会显示上次的缓存,因此你必须提交新的数据,所以在后面加了个时间参数,即使你的后台没设置这个参数,但也不会报错.此时IE会重新向后台发出请求,类似的还有

关于IE和edge浏览器中get请求缓存的坑。

主要是在一些使用到cookie的ajax场景中. 比如:Angularjs的$http({"url":url,"method":"GET",withCredentials":true}).success(function(){}) get请求无法得到正确数据的时候,先查看控制台. 如果该请求 from cache 或 来自缓存 你会发现该get请求的请求头为空. 这时就会向服务器发送空请求,导致服务器得不到你的cookie,从而无法根据

浏览器http的缓存机制

原文出处-----分享从伯乐在线看到的一篇好文章  http://web.jobbole.com/85509/ 针对浏览器的http缓存的分析也算是老生常谈了,每隔一段时间就会冒出一篇不错的文章,其原理也是各大公司面试时几乎必考的问题. 之所以还写一篇这样的文章,是因为近期都在搞新技术,想“回归”下基础,也希望尽量总结的更详尽些. 那么你是否还需要阅读本篇文章呢?可以试着回答下面这个问题: 我们在访问百度首页的时候,会发现不管怎么刷新页面,静态资源基本都是返回 200(from cache):

浅谈浏览器http的缓存机制

针对浏览器的http缓存的分析也算是老生常谈了,每隔一段时间就会冒出一篇不错的文章,其原理也是各大公司面试时几乎必考的问题. 之所以还写一篇这样的文章,是因为近期都在搞新技术,想"回归"下基础,也希望尽量总结的更详尽些. 那么你是否还需要阅读本篇文章呢?可以试着回答下面这个问题: 我们在访问百度首页的时候,会发现不管怎么刷新页面,静态资源基本都是返回 200(from cache): 随便点开一个静态资源是酱的: 哎哟有Response报头数据呢,看来服务器也正常返回了etag什么鬼的

透过浏览器看HTTP缓存[转载]

http://www.admin10000.com/document/6299.html 作为前端开发人员,对于我们的站点或应用的缓存机制我们能做的似乎不多,但这些却是与我们关注的性能息息相关的部分,站点没有做任何缓存机制,我们的页面可能会因为资源的下载和渲染变得很慢,但大家都知道去找前端去解决页面慢的问题而不会去找服务端的开发人员.因此,了解相关的缓存机制和充分的利用它似乎就变得必不可少. web端的缓存机制其实有多种,我在这里只是学习和整理了以浏览器为载体的HTTP缓存机制,看看它是如何工作

checking在浏览器为应用缓存查找更新时触发

离线的Web应用,就是在设备不能上网的时候还能运行应用.html5把离线应用作为重点,主要是开发人员的心愿.离线应用的开发的步骤有:首先应该知道设备是否能够上网;然后应该还能访问一定的资源(如图像.CSS.javascript等),只有这样才能正常工作. 离线检测 想要开发离线Web应用第一步就得知道用户的设备的上网情况.HTML5为此定义了一个navigator.onLine属性,这个属性值为true的时候表示设备能够上网,表示false的时候表示设备不能上网.这个属性的关键在于浏览器必须知道

IE浏览器下ajax缓存导致数据不更新的解决方法

摘自:http://www.iefans.net/ie-ajax-json-shuju-huancun/ 最近做设计的时候遇到一个小问题,当你用jquery的getjson函数从后台获取数据的时候,IE浏览器会自动设置缓存,如果此时你对数据进行修改的时候刷新页面,IE并不会在页面显示你修改后的数据,因为你刷新的时候IE浏览器会查找缓存并显示你修改前的数据,最后在网上查了些资料终于解决了IE浏览器下的问题. 方法就是在你的请求的URL 后面设置个可变的参数,比如: Java代码 $.getJSON