首页 > 代码库 > IE bug ajax请求 304解决方案

IE bug ajax请求 304解决方案

打开调试工具之后,原因一下就明朗了 ajax返回结果HTTP304 ...   每次请求的走的是缓存,而Chrome等浏览器是正常返回的200

 

 

【解决方案】

  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");