[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 ...
随机推荐
- JS限制并且显示textarea字数
转自:https://www.cnblogs.com/shinepolo/articles/1373113.html 1 <script type="text/javascript&q ...
- pandas 读取excle ,迭代
# -*-coding:utf-8 -*- import pandas as pd xls_file=pd.ExcelFile('D:\python_pro\\address_list.xlsx') ...
- WPF DataGrid 控件的运用
WPF DataGrid 控件的运用 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-23 参考: King Cobra 博客 ...
- 【301】IDL与C#混合编程
目录: 一.COM_IDL_CONNECT 1. 添加组件 2. 组件初始化 3. 功能调用 4. 数据传递 二.IDLDrawWidget组件 C# (C Sharp)是微软公司在2000年6月发布 ...
- html 资源
- Android判断Service是否运行
/** * 用来判断服务是否运行. * @param context * @param className 判断的服务名字 * @ret ...
- Plugins in Unity
[Plugins in Unity] In Unity, you normally use scripts to create functionality but you can also inclu ...
- HTML5框架、背景和实体
-----------------siwuxie095 HTML5 框架 1.框架标签 <frame> ...
- c++ 享元模式(flyweight)
举个围棋的例子,围棋的棋盘共有361格,即可放361个棋子.现在要实现一个围棋程 序,该怎么办呢?首先要考虑的是棋子棋盘的实现,可以定义一个棋子的类,成员变量包括棋子的颜色.形状.位置等信息,另外再定 ...
- Opencv轮廓计数(学习)
#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/xfeatures2d.hpp> ...