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

今日在做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与历史一样则使用缓存,根本不向服务器端提交。因此无法取到刚提交的数据

相关文章

JS原生Ajax操作(XMLHttpRequest) GET请求 POST请求 兼容性问题 利用iframe模拟ajax 实现表单提交的返回...
AJAX 每日更新前端基础,如果觉得不错,点个star吧 &#128515; https://github.com/WindrunnerMax/E...
踩坑Axios提交form表单几种格式 前后端分离的开发前后端, 前端使用的vue,后端的安全模块使用的SpringSe...
很早就听闻ajax的名声,但是却一直不知道怎么用,今天自己捣鼓了一下,竟然会用了,哈哈哈哈。 为了防止...
需要在服务器上进行哈 jquery的ajax方法: // jquery请求 $.ajax({ url: &quot;./server/slider.js...
Ajax函数封装ajax.js // Get / Post // 参数 get post // 是否异步 // 如何处理响应数据 // URL // var...