半天,程序使用jQuery的加载方法来请求,为什么第二个请求不能发送是非常奇怪的。一个知道加载请求的百度,所以IE浏览器是
它被缓存,在互联网上搜索了很多解决方案,下面是我认为比较全面的解决方案,主要分为客户端解决方案和服务器解决方案。
1。客户端解决方案
IE访问策略:Internet选项——浏览历史-设置——Internet临时文件的选项也可用于每次访问Web页面。
1:将随机函数添加到Ajax请求的页面,我们可以使用随机时间函数。
添加T = Math.random()发送Javascript URL后
例如,URL ++=+ Math.random();或新的日期();
2:添加xmlhttprequest.setrequestheader(If-Modified-Since
总的来说,这里不会直接使用XMLHttpRequest
您应该能够找到这样的代码。
XXXXX.send(yyyyyy);
所以,把它变成
XXXXX.setRequestHeader(If-Modified-Since
XXXXX.send(yyyyyy);
实践证明,这两种方法是非常有效的。
1、在服务器上加上标题(缓存控制:无缓存,must-revalidate);
2、添加xmlhttprequest.setrequestheader(If-Modified-Since
3、添加xmlhttprequest.setrequestheader(缓存控制
4、在Ajax URL参数后添加新鲜=+ Math.random(); / /当然这里的参数可以是任意的新鲜
类似于5、第四和第三的方法,参数的URL后加上时间戳=+新(日期)(的时间); / /推荐使用这种方法
6。后置替换:不推荐
2。服务器端解决方案:
以struts2为例:
服务器端使用Struts2
XML代码
复制代码代码如下所示:
java代码
复制代码代码如下所示:
公共课cachingheaderinterceptor延伸abstractinterceptor {
私有静态最终长1l serialVersionUID =;
公共字符串截取(actioninvocation调用)抛出异常{
ActionContext上下文= invocation.getinvocationcontext();
httpservletresponse反应=(httpservletresponse)context.get(strutsstatics。http_response);
如果(应答)!= NULL){
response.setheader(缓存控制
response.setheader(语用
response.setheader(到期
}
返回invocation.invoke();
}
}