解决Ajax请求时 无法获取最新数据

来源:互联网 发布:回溯算法 八皇后问题 编辑:程序博客网 时间:2024/05/22 10:24

今日在做Ajax的项目,发现一个问题:

提交数据后,取不回提交的数据。郁闷多时,仔细分析,发现后台日志没有取数据的消息,前端也没有出现“正在读入数据”的提示。因此觉得应该是系统缓存的问题,。

当手工清除IE缓存后,重新发出ajax请求,可以获取当前最新提交的数据

方法如下:

方法1:服务器端代码加入response.setHeader("Cache-Control", "no-cache, must-revalidate");

方法2:用JavaScript在Ajax提交的时候加入一个随机数作为URL中的一个参数。 Math.random)

 $.getJSON(
                  ctx + "/service/*******/******.do",
                  {id : Math.random()},    <!--发送异步请求的时候,发送一个随机数,防止IE因为URL一样,使用缓存,而不重新发出请求-->

                                                          <!--   用时间戳更好 -->
                  function (json) {
                   createData(json);   //解析后台传过来的数据
               });



原因:IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交。因此无法取到刚提交的数据