IE浏览器因缓存问题未能成功向后端发送请求的几个解决办法

转自: http://blog.csdn.net/tuzongxun/article/details/51355059

这段时间前后端联调,解决IE、谷歌等浏览器兼容问题,真是让人有点焦头烂额,各种奇葩问题层出不穷,旧问题刚去,新麻烦又来,其中尤其以IE浏览器缓存的问题最多。有若干次都是因为这个缓存,使得前端的请求没有实际到达后台,造成304状态码。

经过前端同事和我的各种尝试,发现有三四种办法可以针对不同的情况解决这个问题。

方法一:

在网上一搜“html设置不缓存”就会看到大部分的答案都是这个,那就是在之前的一篇博文《同前端联调遇到的坑(二)》中也说过的当时没起作用的方法,在html请求时加上如下代码:

 

  1. <meta http-equiv="Pragma" content="no-cache">
  2. <meta http-equiv="Cache-Control" content="no-cache">
  3. <meta http-equiv="Expires" content="0">

这个方法虽然上次没有起作用,但是在之前的一些应用中却是起过作用的。

方法二:

因为上边的方法一在上次的联调中失效,后来几经尝试下便找到了另一个方法,便也是《同前端联调遇到的坑(二)》中说过的把get请求改为了post请求,这个就没有什么多的可说。加入有朋友遇到方法一失效的情况,或许可以一试。

方法三:

虽然方法二解决了上次的那个问题,但是当今天在另一个模块再次遇到相似的问题时,却无奈的发现,不仅方法一失效,方法二竟然也同样的失效了。于是一番折腾下,再次找到新的解决办法,那便是在请求对应的后台代码中加入如下内容:

  1. response.setHeader("Cache-Control", "no-cache");
  2. response.setHeader("Pragma", "no-cache");
  3. response.setDateHeader("Expires", -1);
时间: 2024-08-10 21:22:43

IE浏览器因缓存问题未能成功向后端发送请求的几个解决办法的相关文章

安装插件 YouCompleteMe 成功却无法自动补全C++的解决办法

前言 通过 vim-Plug 安装 YCM 插件以及解决相关依赖问题后,vim-Plug 显示 YCM 安装成功,但是发现在编辑CPP文件时并不会识别" .  .-> "等等进行自动补全,而是只会按之前已经输入过的字符串进行补全.显然YCM还没有真正地安装成功,如果你已经安装完成且遇到无法自动补全的问题,请往下看. 解决办法 在 vimrc 中指定 .ycm_extra_conf.py " ycm 指定 ycm_extra_conf.py let g:ycm_globa

ASP.NET Core 谷歌chrome 浏览器出现ERR_UNSAFE_PORT网页可能已永久移到新的网址的解决办法

1.问题描述: 今天在使用谷歌浏览器访问IIS上搭建的一个项目,该项目设置的端口号为6000,结果不能访问,出现了如下图所示的提示信息: 2.问题所在: 出现此类问题的原因不是服务器端的问题,而是谷歌浏览器(FF浏览器也有)对一些特殊的端口进行了限制,具体有哪些端口进行了访问限制,请参见本文末. 3.问题解决: 最简单的办法就是直接修改搭建项目的端口号,避开这些谷歌限制的端口号. 谷歌|chrome浏览器默认限制端口有哪些? 谷歌|chrome浏览器:6000.6665 6666 6667 66

如何安装ubuntu(linux)和window7双系统,以及装成功后启动项没有win系统的解决办法。

需要工具: windows 7 64位   (笔者笔记本自带系统) ubuntu 13.04 32位  (官网下载的最新版) UltraISO最新版  (自己找渠道去下载,用来将镜像文件烧到u盘中) 一个空着的U盘(若有文件,请先备份) 步骤: 此方法是用U盘进行安装,当然还有很多方法在这里就介绍比较简单的一种吧: 记住,不是用diskpart命令将u盘设置成启动盘,不要和windows的安装方法混了. 下面是写入U盘: 请先为安装ubuntu13.04分配出一块儿磁盘空间来,笔者分出了100G

MS SQL执行大脚本文件时,提示“未能完成操作,存储空间不足,无法处理此命令”的解决办法

问题描述: 当客户服务器不允许直接备份时,往往通过导出数据库脚本的方式来部署-还原数据库, 但是当数据库导出脚本很大,用Microsoft SQL Server Management Studio执行脚本时,往往会遇到"内存不足"的提示. 解决办法: 用微软自带的sqlcmd工具,可以导入执行.以SQL Server 2008R版本为例: 第一步:Win+R 键入:cmd 命令,开启命令行工具: 第二步:键入:cd C:\Program Files\Microsoft SQL Serv

被微信浏览器的缓存给忽悠啦!

最近为一个老项目做微信接入相关的工作,遇到一个特别奇葩的事情,客户端明明用js window.location = 'xxx.html' 访问了一个页面,那个页面会自动去访问后台的接口,后台接口去调用微信的接口,但是测试的时候,发现有的时候可以成功访问到 xxx.html,有的时候不能成功访问到xxx.html,后台调试输出的结果是,不管你是否成功的访问到了 xxx.html 页面,都会进行正常的 xxx.html 页面之后的操作,也就是访问后台的接口,但是如果没有成功访问到 xxx.html,

浏览器 HTTP 缓存原理分析

转自:http://www.cnblogs.com/tzyy/p/4908165.html 浏览器缓存原理: 1.浏览器第一次访问服务器资源/index.html,在浏览器中没有缓存文件,直接向服务器发送请求,服务器返回200 OK 实体中返回index.html文件内容,并设置一个缓存过期时间,一个文件修改时间,一个根据index.html内容计算出来的实体标记Entity Tag简称ETag,浏览器将/index.html路径的请求缓存到本地 2.浏览器第二次访问服务资源/index.htm

浏览器HTTP缓存原理分析

http://www.cnblogs.com/tzyy/p/4908165.html 章节目录 浏览器缓存原理 文字版描述 一图以蔽之 缓存相关首部字段 request缓存相关首部字段 response缓存相关首部字段 实体首部缓存相关字段 缓存配置的一些注意事项 以前项目中遇到了很多浏览器缓存相关的问题,也在网上查过资料,搞过服务器的配置,来确保客户端加载服务器资源的速度和资源有效性.最近仔细看了下http协议中和缓存相关的一些属性,总结一下. 浏览器缓存原理 文字版描述 ①浏览器第一次访问服

深度解析浏览器的缓存机制

一.前言 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 对于一个数据请求来说,可以分为发起网络请求.后端处理.浏览器响应三个步骤.浏览器缓存可以帮助我们在第一和第三步骤中优化性能.比如说直接使用缓存而不发起请求,或者发起了请求但后端存储的数据和前端一致,那么就没有必要再将数据回传回来,这样就减少了响应数据. 接下来的内容中我们将通过缓存位置.缓存策略以及实际场景应用缓存策略来探

9大浏览器端缓存机制分析

浏览器缓存(Browser Caching)是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户.浏览器端缓存的机制种类较多,总体归纳为九种,这里详细分析下这九种缓存机制的原理和使用场景.打开浏览器的调试模式->resources左侧就有浏览器的8种缓存机制. 一.http缓存 http缓存是基于HTTP协议的浏览器文件级缓存机制.即针对文件的重复请求情况下,浏览器可以根据协议头判断从服务器端请求文件