IE浏览器发送两次相同请求第二次读取第一次缓存问题
前端用的vue,后台SpringBoot,浏览器ie11。问题背景:前端的菜单为了权限问题是通过请求后端获取到的,在ie浏览器上退出登录后用其它角色账号登录后重新请求菜单的时候显示的是上个用户的菜单缓存,其他类似的请求也有同样的问题
解决方案:
后端写个全局的拦截器将所有的响应头等设置一下,具体如下:
继承HandlerInterceptorAdapter 重写它的preHandle方法,设置响应
public class LoginInterceptor extends HandlerInterceptorAdapter {private Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);@Autowiredprivate JwtTokenUtil jwtTokenUtil;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// System.out.println("path===="+request.getRequestURI());
// String authToken = request.getHeader(jwtTokenUtil.getHeader());
//
// if(StringUtils.isBlank(authToken)){
// throw new TokenException("用户未登录");
// }
// if(!RedisUtils.exists(CommonConstants.REDIS_TOKEN_VALUE + authToken)) {
// throw new TokenException("无效的token");
// }
//
// JwtUser jwtUser = jwtTokenUtil.validate(authToken);
// if(jwtUser == null){
// throw new TokenException("无效的token");
// }
// BaseContextHandler.set(CommonConstants.USER_INFO, jwtUser);response.setHeader("Cache-Control","no-cache");response.setHeader( "Pragma", "no-cache" );response.addHeader( "Cache-Control", "must-revalidate" );response.addHeader( "Cache-Control", "no-cache" );response.addHeader( "Cache-Control", "no-store" );response.setDateHeader("Expires", 0);return super.preHandle(request, response, handler);}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {BaseContextHandler.remove();super.afterCompletion(request, response, handler, ex);}
}
IE浏览器发送两次相同请求第二次读取第一次缓存问题相关推荐
- Java 技术篇 - 前端浏览器发送一次url请求后端ServerSocket接收到两次请求原因及解决方法,GET /favicon.ico HTTP/1.1问题处理
效果图如下: 前端发送一次请求,后端接收到两次,第二次是:GET /favicon.ico HTTP/1.1 可以看到页签上标题栏前面是个地球,这个是默认的. 原因就是后台给的响应里没有指定这个图标, ...
- Chrome浏览器发送两次请求
Chrome浏览器在请求时会调用两次Servlet 但在FireFox上却没这个问题,发现大家说的都是插件问题.经过一一排查,发现了罪魁祸首. 在开启这个插件的时候会请求两次,将这个插件的权限改为点击 ...
- 调试web项目时Chrome浏览器发送两次请求
最近调试web项目时,项目有时候会因为接收到空值而报错,之后我发现是因为Chrome浏览器会连续发送2次请求导致. 在使用Edge浏览器则没有出现这个问题,遂搜索了一些解决方案如下: https:// ...
- C# 模拟浏览器发送post或get请求
一.基本示例 private string HttpPost(string Url, string postDataStr){HttpWebRequest request = (HttpWebRequ ...
- 火狐浏览器允许ajax,解决火狐浏览器发送jquery的ajax请求无效的问题
今天遇到这样一个问题: 页面在chrome下发送ajax的请求是没有问题的,但是在firfox下无效. 代码大致如下: //前面省略 ..... 生成成绩 查询成绩 ...... ...... fun ...
- SAP UI5 OData谣言粉碎机:极短时间内发送两个Odata request,前一个会自动被cancel掉吗
这是Jerry 2021年的第 9 篇文章,也是汪子熙公众号总共第 280 篇原创文章. 本文Jerry原本写于2016年5月,当时发布于团队内部wiki. 五年过后,Jerry使用的开发框架,从SA ...
- 谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉?
背景 有时我们能在Chrome开发者工具的Network tab里观察到SAP UI5应用会发出某些状态为"取消"的OData请求.如下图第五个请求. 之前有一种似是而非的说法:极 ...
- vue:element ui分页改变pageSize,触发两次回调请求
1.描述: 使用element pagination组件时,如果你的currentPage在靠后的页数,这时改变pageSize,那么可能导致size-change和current-change事件同 ...
- 谷歌浏览器怎么重发请求_chrome 浏览器的预提取资源机制导致的一个请求发送两次的问题以及ClientAbortException异常...
调查一个 pdf 打印报错: ExceptionConverter: org.apache.catalina.connector.ClientAbortException: java.net.Sock ...
- html post 发送两次,JS发送跨域Post请求出现两次请求的解决办法
为什么 post 请求会出现两次请求? 跨域请求就会出源现这样的问题. 由于CORS(cross origin resource share)规范的存在,浏览器会首先发送知一次options嗅探,同时 ...
最新文章
- a连接带id转送不了数据_你找到了数据清洗利器?
- jmeter对需要登录的接口进行性能测测试
- iOS如何实现语音播报及后台播放
- c++设置单元格填充色_格式函数text,设置自定义格式的万金油
- c向文件中插入数据_Redis从文件中批量插入数据
- community 计算模块度_光模块深度:国内光模块企业快速崛起
- linux的基础知识——会话
- 3、vueJs基础知识03
- 大数据学习笔记30:搭建高可用Hadoop集群
- 安装composer 提示需要反复重启解决办法
- mysql下载是port报错_mysql group replication添加复制节点报错
- php实现快速排序和冒泡排序
- 语音数据增强—使用kaldi对语音加噪
- python100份教材/教程分享学习,初中高级总有适合你的
- 董明珠这一年:格力造芯与银隆困局
- java for 死循环_关于java编程死循环的应用
- python关于类、self、_init_的应用
- Beta周王者荣耀交流协会第六次会议
- PNG alpha transparency: AlphaImageLoader filter flaws
- 咖说 | 新基建中区块链的位置:基础设施的基础技术
热门文章
- 算法竞赛入门经典-第五章错位输出
- 如何判断车与路边线距离_靠边停车如何判断车轮与马路牙子的距离?一个办法真的很简单...
- jqwidgets使用方法
- Vue中使用 Aplayer 和 Metingjs 添加音乐插件
- 如何安装torch、Pytorch、torchversion
- matlab 传函将s换为jw,2010MATLAB及控制系统仿真_总复习.ppt
- 关于电平转换电路1.8V转3.3V
- 利用STM32精确测量电压
- 使用cocoapods导入第三方后 报错_OBJC_CLASS_$_XXX
- “但行好事 莫问前程 只问耕耘 不问收获 成功不必在我 而功力必不唐捐” 科技袁人·年终盛典——5G是科技时代非常重要的基础设施...