关于ajax异步请求因缓存导致数据错乱的问题
后台环境:jfinal2.2
前台环境:左侧导航菜单,右侧main div的内容通过点击左侧菜单用ajax异步加载。采用浏览器cookie记录跟踪登录用户。ajax采用jquery的$.ajax方式,参数:type: "POST",async: false,cache: false,contentType: "application/x-www-form-urlencoded; charset=UTF-8"。
问题:使用chrome用a用户登录系统,点击“用户列表菜单”,后台对应的controller能接收到正常的请求,结果一切正常。同时在firefox中使用b用户登录系统,点击“用户列表菜单”,一切正常。但是,如果这时在chrome中再次点击“用户列表菜单”,后台对应的controller就不能接收到a用户的请求,但是chrome却接收到了b用户在firefox查询的结果,导致两个用户的数据混乱。
想法:搜索了ajax缓存相关的问题,有说使用post再加上cache:false就可以了,但是还是不行,是不是必须在url后面加上时间戳参数或随机数才行呢?有的说使用jquery的ajax,如果加了cache:false,url后会默认加时间戳参数的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为了跟dubbo配合使用,我们在实际用的时候也做了类似改造,把model作为一个专门承载数据的对象,数据库操作的方法拉到了独立的dao中,传统一点但是很好用。
回复
放到业务层中就很好,不用单独再建立dao层了