关于IE7 多次Ajax 返回同一值问题

问题很简单,当 验证框 获得焦点的时候,后台返回不同的验证码

我使用jQuery Ajax来实现.

1 $.ajax({
2   url:"handler.ashx",
3   data:"method=getValidNumber",
4   dataType:"POST"

5 }) 

我一般都是在FF下调试的,事情进展的很顺利,后来用IE试着用了下,问题就来了。

 IE7的缓存,让我无法获得想要的结果,没办法,事情出了,总得解决啊,呵呵。

找了很多资料,也没找到合适的,可能我搜索的关键字用的不够好。

今天细读了下,jQuery源代码,cache设置为false,貌似就OK了,可是那个IE7也很顽固,还是老样子。

后来在jQuery源码中看了下它处理get请求的方式,似乎为了不让缓存,要加个随机数上去,我也不管3721,加了个随机数上去,结果就OK了。

代码如下

 1 $.ajax({

2    url:"handler.ashx",
3    data:"method=getValidNumber&t="+Math.Random(),
4    dataType:"POST"
5 })

 问题分析:

IE7缓存是为了提高效率,当访问一个URL的时候,Http Header 中会有个last modified time 不知道有没有写错,意思就是这个

会被修改掉,要是多次访问同一个URL,它会比对URL,发现在缓存中,那就到缓存中加载。

 加了个随机数,它发现URL变了,那就去重新加载吧,这样数据就又可以重新获得了。

高手给我解答下啊:

我映像中 POST方法的话,是没关系。只有GET的时候才会存在这样的问题。

可能我的知识理解有误,请高手帮帮忙,解答下,在此谢过! 

 

 

 

posted @ 2009-07-18 00:21  Mr K  阅读(514)  评论(0编辑  收藏  举报