如图,因为使用了layui框架,本以为是table.on()事件影响,导致请求在IE浏览器上面,第一次请求,可以调用到后台接口,并且也能够保存数据,但是第二次发送就不成功,显示调用接口来自缓存。删除缓存之后,又可以再次发送一次成功。
查了资料之后才发现ajax的缓存原理,Ajax在发送的数据成功后,会把请求的URL和返回的响应结果保存在缓存内,当下一次调用Ajax发送相同的请求时,它会直接从缓存中把数据取出来,这是为了提高页面的响应速度和用户体验。当前这要求两次请求URL完全相同,包括参数。这个时候,浏览器就不会与服务器交互。
所以针对此问题,只需要在url后面添加一个随机数或者是时间戳,那么每次请求,都会是不同的url也会调用成功。
解决方案:
1.在 Ajax 的 URL 参数后加上 "?num=" + Math.random();
2.和上面的类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime();