[IE bug] ajax请求 304解决方案
最近和筒子们做了个校园电台,进去之后会自动播放歌曲,每首放完了的话会随机get新的json,然后再播放下一首
整体做成了命令行的风格,在最后输入next,start等命令来操作,5+M/s校园网+W级的曲库,最后做出来的效果还是很赞的
在同学间推广了一下,有好评咯
反馈回来的产品设计的bug 和 代码bug 也不少,最逗的一个就是 IE浏览器下,每次换出来的新歌都是一首
调试前以为是js代码在IE下运行的问题,后来发现js没有bug
打开调试工具之后,原因一下就明朗了 ajax返回结果HTTP304 ... 每次请求的走的是缓存,而Chrome等浏览器是正常返回的200
ajax缓存= = IE真是无所不能啊 Σ( ° △ °|||)︴
!ajax走缓存= =!╮(╯▽╰)╭
原因找到了,bug就很好改了,不让缓存或者实时获取最新的就行
【解决方案】
IE下的ajax请求是按照ip地址和请求路由进行缓存,所以最简单的办法:
1.直接在请求的时候再请求链接的末尾自动添加个时间戳或者随机种子就OK了
像上面的话: /Home/GetMusic?id=1+时间戳 ,很方便可以解决
2.既然它缓存,那就不让它缓存
前端页面禁止缓存: <META HTTP-EQUIV="pragma" CONTENT="no-cache">
前端ajax禁止缓存:
ajax请求的cache参数:要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false)。设置为false将不会从浏览器缓存中加载请求信息。
后端:
.net : Response.CacheControl="no-cache";
php : header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
总之一句话的事情,第一次遇到,存一下咯。

[IE bug] ajax请求 304解决方案的更多相关文章
- IE bug:ajax请求返回304解决方案
bug说明: 同一账户下的默认收货地址只有一个,默认收货地址可以修改,修改完成后,使用ajax重新加载收货地址部分. 默认收货地址状态标记:status = 1: 在IE浏览器做了修改后,重新加载的数 ...
- Ajax请求304问题
ajax默认是开启缓存的,所以get请求如果路径一样,会先找缓存,如果缓存存在就用缓存. 解决方案: 1.在修改url为动态变化的,如url后面加一个×tamp=Date.parse ...
- ajax请求超时解决方案
设置timeout的时间,通过检测complete时status的值判断请求是否超时,如果超时执行响应的操作. var ajaxTimeoutTest=$.ajax({ url:'',//请求地址 t ...
- 一次ajax请求导致status为canceled的原因小记
偶然碰到一个小Bug ajax请求执行后返回了一个canceled(状态码) 但是后台却接受了参数并且执行成功0.0 刚看到这个状态的时候是一脸懵逼的.... 之前并没见过这样的状态码 经过参数确认并 ...
- Ajax 请求后打开新窗口被拦截的解决方案
公司业务上有个场景,需请求后台获取支付链接地址,再打开地址引导用户购买.这样的场景在其他企业应该也很场景.但是遇到个很常见的问题,Ajax后直接用window.open(url),会被浏览器作为广告拦 ...
- 有关Ajax跨域请求的解决方案
前言 最近博主在赶项目进度.所以微信二次开发那边的博文一直没有更新.后续时间会慢慢记录这个学习历程的.来年公司要开发微信小程序.到时也会记录一下历程. 闲话少说,今天在工作中遇到了SpringMVC接 ...
- IE8下ajax请求失败的解决方案
今天发现IE9以下的浏览器,ajax请求返回数据异常研究半天发现是type参数未设置,由于默认方式是Get,添加上type:“post”就恢复正常了
- AJAX请求遭遇未登录和Session失效的解决方案
使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定.但是AJAX却是例外的,所以解决方法是设置响应为session失效. 一 ...
- dotnet webservice处理数据量过大,ajax请求返回500错误解决方案
ajax请求webservice返回json数据,数据规模过大时ajax请求会得到500的响应,webservice+ajax处理大规模的数据需要在web.config中进行如下配置: <sys ...
随机推荐
- Delegate(代理)异常:该委托必须有一个目标
转自 Delegate(代理)异常:该委托必须有一个目标 在代理调用BeginInvoke(new AsyncCallback(callBack), null);时,会抛这个异常的原因是该代理变量代理 ...
- Java后端发送email实现
依赖的jar包 <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail& ...
- linux 常用查看设备命令(转)
# uname -a # 查看内核/操作系统/CPU信息 # /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算 ...
- 前端开发之JavaScript HTML DOM理论篇一
主要内容: 1.DOM简介 2.DOM 节点 3.DOM 方法和属性 4.DOM 访问和修改 一.DOM简介 1.什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTM ...
- 关于js闭包的一些浅层面的理解
function a() { var i = 0; function b() { alert(++i); } return b; } var c = a(); c(); 1.js分全局作用域和函数作用 ...
- 【Rsync项目实战一】备份全网服务器数据
目录 [Rsync项目实战]备份全网服务器数据 [企业案例] 1.1 环境部署 1.2 开始部署backup服务器:Rsync服务端过程: 1.3 开始部署nfs01服务器:Rsync客户端过程: [ ...
- Blending
[Blending] Blending is used to make transparent objects. When graphics are rendered, after all shade ...
- [codevs3981]动态最大子段和不带修改(线段树)
解题关键:最大子段和需要多个信息维护. 注意查询时的pushup. #include<cstdio> #include<cstring> #include<algorit ...
- JRE,JVM,JDK
JRE,JVM,JDK的关系.JRE(Java Runtime Environment)java运行环境,我们可以把它看成是一个操作系统.也就是说JRE提供了Java执行的软件平台. JVM (Jav ...
- jQuery代码在移动端不运行
今天写了个html网页发现在iOS系统上边不运行,于是真机连上Sarfari查看报错,于是乎 其实这是由于iOS的安全策略决定的,不允许加载非https的连接 报错:was not allowed t ...