vue+elementUI项目,在win10系统的IE11浏览器运行,
F12爆出几个问题:

  1. 此页上的代码禁用了反向和正向缓存
  2. script 未知错误
  3. 304 not modified



304 Not Modified 是什么意思

304 的标准解释是:Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。
因此,对于动态页面做缓存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回 304 的时候已经做了一次数据库查询,但是可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。

当这些缓存有效的时候,通过 HttpWatch 查看一个请求会得到这样的结果:

  • 第一次访问 200
  • 鼠标点击二次访问 (Cache)
  • 按F5刷新 304
  • 按Ctrl+F5强制刷新 200

如果是这样的就说明缓存真正有效了。以上就是我对 HTTP 304 的一个理解。


附参考文章:

  • ajax请求 304解决方案

报错1:

报错2:


冲刷了页面,还是报错(截图如下)。

报错2:“304 not modified”


解决办法:(原文地址:点击查看)

ajax返回结果HTTP304 … 每次请求的走的是缓存,而Chrome等浏览器是正常返回的200

ajax缓存= = IE真是无所不能啊 Σ( ° △ °|||)︴

!ajax走缓存= =!╮(╯▽╰)╭

原因找到了,bug就很好改了,不让缓存或者实时获取最新的就行

【解决方案】

IE下的ajax请求是按照ip地址和请求路由进行缓存,所以最简单的办法:

1.直接在请求的时候再请求链接的末尾自动添加个时间戳或者随机种子就OK了

像上面的话: /Home/GetMusic?id=1+时间戳 ,很方便可以解决

2.既然它缓存,那就不让它缓存

前端页面禁止缓存:

前端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”);

特意发文一篇,第一次遇到这情况,备份留存作为以后的参考。

ajax请求 304解决方案:相关推荐

  1. ajax请求超时解决方案

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

  2. ajax请求如何判断超时,ajax请求超时判断(转载)

    ajax请求时有个参数可以借鉴一下 var ajaxTimeOut = $.ajax({ url:'', //请求的URL timeout : 1000, //超时时间设置,单位毫秒 type : ' ...

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

    IE bug:ajax请求返回304解决方案 参考文章: (1)IE bug:ajax请求返回304解决方案 (2)https://www.cnblogs.com/fanyx/p/6773256.ht ...

  4. 304 ajax,Ajax请求永远是304的解决方案

    我之前写了一个NavigationService,用来做页面的Ajax导航,但是今天发现一个问题,在IE下面,发现Ajax的请求不会真正的被发送到服务器端,在IE里面,返回的永远是304.这个应该是I ...

  5. 以ajax请求方式进行文件下载操作失败的原因及解决方案

    以ajax请求方式进行文件下载操作失败的原因及解决方案 参考文章: (1)以ajax请求方式进行文件下载操作失败的原因及解决方案 (2)https://www.cnblogs.com/sjshare/ ...

  6. jquery ajax多次请求接口解决方案

    jquery ajax多次请求接口解决方案 参考文章: (1)jquery ajax多次请求接口解决方案 (2)https://www.cnblogs.com/DreamLiFeng/p/100088 ...

  7. ajax返回304,jquery $ajax GET请求在IE浏览器兼容中遇到的304 cache请求的经验分享

    在最代码上线后,印象最深的2个bug: 1.用户提醒数字明明已经查看了但是一直还在提示. 2.用户下载代码已经登录了但是一直提示尚未登录. 经过和牛牛们远程协助发现是因为在IE内核的浏览器下,http ...

  8. Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)

    这篇文章主要介绍了用Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案),需要的朋友可以参考下 问题 前端小同学在做页面的时候,犯了个常见的错误:把多个Ajax请求顺序着写下来了, ...

  9. shiro ajax权限拦截器,Shiro Ajax请求权限不满足,拦截后解决方案

    Java模拟Http请求 Java模拟Http请求 使用的是org.apache.httpcomponents中的httpclient,因为post请求涉及到传输文件,所以需要使用httpmime这个 ...

最新文章

  1. 深入浅出Pytorch:02 PyTorch基础知识
  2. 《深入浅出Ext JS》(第2版)即将上市
  3. Liunx的常用命令
  4. sqlserver java odbc_Java JDBC------------------ODBC(SQLServer)链接
  5. 【Python】Matplotlib利用指数函数的向量及其逆向向量绘图
  6. 一晚带货千万,谁在买8000一面的健身镜?
  7. 盲人方便的使用计算机输入文字,中文信息学报盲人用计算机软件系统中的语音和自然语言处理技术Ξ.PDF...
  8. python中yield的使用(两分钟读懂)
  9. c语言编程绝对质数,c语言求绝对素数
  10. idea一顿切换分之后编译项目提示找不到其他分支类的解决办法~
  11. Java集合类和数组之间的相互转换
  12. zlib deflate gzip区别
  13. html5拖放详解,HTML5拖拽/拖放(drag drop)详解
  14. 用R对Twitter用户的编程语言语义分析
  15. vue面试题目(更新版)
  16. 我国火箭回收历程介绍
  17. python过滤unicode控制字符
  18. c语言实现简单计算器(两个数字的加减乘除)
  19. 底盘结构——智能车“底盘结构与调试”学习笔记
  20. winform 鼠标 静止时间_双飞燕飞时代FG30S鼠标评测,谁说静音手感不两全?

热门文章

  1. Jmeter 使用badyboy 录制脚本
  2. visualvm安装插件
  3. 运行报错:java.io.IOException: invalid constant type: 15
  4. JQuery实现旅游导航菜单应用方便
  5. phpMyAdmin提示:配置文件权限错误,无法写入!解决方法
  6. Ansible 之 用户管理
  7. Redis数据库-键的生存时间与过期时间的区别
  8. 玩转Powerpoint2010的视频
  9. emr系统 php,完整电子病历系统c#源码
  10. mysql 脏数据查询_MySQL数据库02