最近和筒子们做了个校园电台,进去之后会自动播放歌曲,每首放完了的话会随机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解决方案的更多相关文章

  1. IE bug:ajax请求返回304解决方案

    bug说明: 同一账户下的默认收货地址只有一个,默认收货地址可以修改,修改完成后,使用ajax重新加载收货地址部分. 默认收货地址状态标记:status = 1: 在IE浏览器做了修改后,重新加载的数 ...

  2. Ajax请求304问题

    ajax默认是开启缓存的,所以get请求如果路径一样,会先找缓存,如果缓存存在就用缓存. 解决方案: 1.在修改url为动态变化的,如url后面加一个&timestamp=Date.parse ...

  3. ajax请求超时解决方案

    设置timeout的时间,通过检测complete时status的值判断请求是否超时,如果超时执行响应的操作. var ajaxTimeoutTest=$.ajax({ url:'',//请求地址 t ...

  4. 一次ajax请求导致status为canceled的原因小记

    偶然碰到一个小Bug ajax请求执行后返回了一个canceled(状态码) 但是后台却接受了参数并且执行成功0.0 刚看到这个状态的时候是一脸懵逼的.... 之前并没见过这样的状态码 经过参数确认并 ...

  5. Ajax 请求后打开新窗口被拦截的解决方案

    公司业务上有个场景,需请求后台获取支付链接地址,再打开地址引导用户购买.这样的场景在其他企业应该也很场景.但是遇到个很常见的问题,Ajax后直接用window.open(url),会被浏览器作为广告拦 ...

  6. 有关Ajax跨域请求的解决方案

    前言 最近博主在赶项目进度.所以微信二次开发那边的博文一直没有更新.后续时间会慢慢记录这个学习历程的.来年公司要开发微信小程序.到时也会记录一下历程. 闲话少说,今天在工作中遇到了SpringMVC接 ...

  7. IE8下ajax请求失败的解决方案

    今天发现IE9以下的浏览器,ajax请求返回数据异常研究半天发现是type参数未设置,由于默认方式是Get,添加上type:“post”就恢复正常了

  8. AJAX请求遭遇未登录和Session失效的解决方案

    使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定.但是AJAX却是例外的,所以解决方法是设置响应为session失效. 一 ...

  9. dotnet webservice处理数据量过大,ajax请求返回500错误解决方案

    ajax请求webservice返回json数据,数据规模过大时ajax请求会得到500的响应,webservice+ajax处理大规模的数据需要在web.config中进行如下配置: <sys ...

随机推荐

  1. K2 Blackpearl中从数据库直接删除流程实例之K2ServerLog表

    转:http://www.cnblogs.com/dannyli/archive/2012/11/29/2794845.html /********************************** ...

  2. 用 Bitcron 搭博客:你只管写作,它负责呈现

    目录 为何要写博客 极简建站 专于写作 与微信联动 付费模式 尾巴 Bitcron 是一个可作为博客使用的互联网渲染引擎,只需网页即能工作,支持 Markdown 语法,通过 Web.微信.Dropb ...

  3. 6. H.264/AVC编码器原理

    1. H.264/AVC的应用 H.264 不仅具有优异的压缩性能,而且具有良好的网络亲和性,这对实时的视频通信是十分重要的.和 MPEG-4 中的重点是灵活性不同,H.264 着重在压缩的高效率和传 ...

  4. mac os、linux及unix之间的关系

    unix 是由贝尔实验室开发的多用户.多任务操作系统 linux是一类Unix操作系统的统称,严格来说,linux系统只有内核叫“linux”,而linux也只是表示其内核,但因为习惯使然,人们 习惯 ...

  5. CodeFirst(反射+特性)

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  6. 使用ConfigFilter

    ConfigFilter的作用包括: 从配置文件中读取配置 从远程http文件中读取配置 为数据库密码提供加密功能 1 配置ConfigFilter 1.1 配置文件从本地文件系统中读取 <be ...

  7. java aop 日志打印 正则设置

    package tz.lion.Utils.aop; import com.alibaba.fastjson.JSON;import org.springframework.web.multipart ...

  8. Linux实战教学笔记31:Keepalived高可用集群应用实践

    1.1 Keepalived高可用软件 1.1.1 Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入 ...

  9. Reducing File Size

    [Reducing File Size] 1.Unity strips out unused assets. The amount of assets in your project folder d ...

  10. 147. Insertion Sort List (List)

    Sort a linked list using insertion sort. class Solution { public: ListNode *insertionSortList(ListNo ...