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

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

方法一:
在网上一搜“html设置不缓存”就会看到大部分的答案都是这个,那就是在之前的一篇博文《同前端联调遇到的坑(二)》中也说过的当时没起作用的方法,在html请求时加上如下代码:
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
这个方法虽然上次没有起作用,但是在之前的一些应用中却是起过作用的。


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


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

方法四:
至于方法四,实际上也是在解决方法三遇到的那个问题时一起试过的,效果差不多,那就是当这个请求是get请求是,在url后加上变化的参数值,例如:http://localhost:8080/test?time=123456,这样浏览器每次都会认为是一个全新的请求,便会真正的去到后台。

据前端同事说,应该还有方法五,是在angular的httpserver中加入一段代码,因为据说有些麻烦,因此便没有更多的了解。

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

  1. safari 浏览器版本升级后提示“此网页出现问题,已重新载入网页” 解决办法

    safari回退条件 版本回退的前提是关闭电脑的SIP机制,命令行 csrutil status 检测状态.Mac os 10.14以下版本回退Safari后插件还是可以用的,升了新系统退了也没法用了 ...

  2. 未能加载文件或程序集“Microsoft.ReportViewer.WinForms 解决办法

    异常信息: 未能加载文件或程序集“Microsoft.ReportViewer.WinForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken= ...

  3. VMware导入OVF时报错(未能部署OVF包用户取消了任务的解决办法)

    阅读目录: 1.问题 2.原因 3.解决方案 问题:部署OVF模版的时候报错“用户取消了任务” 原因:导出ovf模板时,虚拟CD-ROM的选项要选[客户端设备],否则导入时报错“用户取消了任务” 解决 ...

  4. pycharm 测试执行成功,但却无法成功生成测试报告(使用HTMLTestRunner)的解决办法

    pycharm 测试执行成功,在对应的测试路径下确未生成测试报告.反复确认代码也是没有问题的,在网上查找了原因:简单的unittest运行是不执行main方法的.是允许方式问题. 于是在mian方法里 ...

  5. Python解释器运行成功,命令运行显示无此属性解决办法

    情况1: 查看出错的地方的Import包,看本程序是否有名字与import名称相同的py文件或者pyd文件. 有的话删除或者更名即可.

  6. U盘安装Ubuntu 12.04成功后系统无法启动的原因及解决办法

    想搭建一个Linux开发环境,选择了ubuntu12.04长期支持版,采用u盘安装(Universal-USB-Installer做的启动),发现安装完成之后,拔掉u盘无法启动,插上u盘之后,可以重启 ...

  7. 苹果APP内购客户付款成功,没收到相应虚拟产品的解决办法

    一.引导用户走申请苹果的退款 1.告知用户新版本可以使用支付宝.微信支付,更划算 2.苹果可申请90天以内的退款,一般情况申请后48小时内就有反馈. 参考链接 https://jingyan.baid ...

  8. 浏览器HTTP缓存原理分析

    以前项目中遇到了很多浏览器缓存相关的问题,也在网上查过资料,搞过服务器的配置,来确保客户端加载服务器资源的速度和资源有效性.最近仔细看了下http协议中和缓存相关的一些属性,总结一下. 浏览器缓存原理 ...

  9. 浏览器 HTTP 缓存原理分析

    转自:http://www.cnblogs.com/tzyy/p/4908165.html 浏览器缓存原理: 1.浏览器第一次访问服务器资源/index.html,在浏览器中没有缓存文件,直接向服务器 ...

随机推荐

  1. 【Spring】HttpMessageConverter的作用及替换

    相信使用过Spring的开发人员都用过@RequestBody.@ResponseBody注解,可以直接将输入解析成Json.将输出解析成Json,但HTTP 请求和响应是基于文本的,意味着浏览器和服 ...

  2. centos7添加图像化桌面并设置中文

    我前面是使用的centos6.最近才最小化安装了一个centos7.4(最小化安装有很多命令都没有,所以不建议这样干).完了装了图形化界面和设置中文,感觉和centos6有些区别,所以记录一下过程. ...

  3. selenium的使用技巧及集成到scrapy

    为了爬取拉钩,今天学习了selenum的使用技巧.   from scrapy.http import HtmlResponse   class JSPageMiddleware(object):   ...

  4. python各种运算优先级一览表

    ##python各种运算的优先级 运算符 描述 lambda Lambda表达式 or 布尔"或" and 布尔"与" not x 布尔"非" ...

  5. C# 语法学习整理

    1.协变与逆变的概念 文章地址:https://segmentfault.com/a/1190000007005115 **************************************** ...

  6. 《Thinking in Java》学习笔记(四)

    1.Java中的闭包与回调 闭包(Closure)是一种能被调用的对象,它保存了创建它的作用域的信息.JAVA并不能显式地支持闭包,但是在JAVA中,闭包可以通过“接口+内部类”来实现,因为对于非静态 ...

  7. POJ Building roads [二分答案 2SAT]

    睡觉啦 #include <iostream> #include <cstdio> #include <cstring> #include <algorith ...

  8. BZOJ 2565: 最长双回文串 [Manacher]

    2565: 最长双回文串 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1842  Solved: 935[Submit][Status][Discu ...

  9. python爬虫(5)——正则表达式(二)

    前一篇文章,我们使用re模块来匹配了一个长的字符串其中的部分内容.下面我们接着来作匹配"1305101765@qq.com   advantage  314159265358 1892673 ...

  10. css的浮动与定位

    显示与隐藏 标签 属性 值 效果 区别 css的style display none 元素不可见 不占页面空间 css的style visibility hidden 元素不可见 占页面空间 disp ...