问题很简单,当 验证框 获得焦点的时候,后台返回不同的验证码
我使用jQuery Ajax来实现.
1
$.ajax({
2 url: " handler.ashx " ,
3 data: " method=getValidNumber " ,
4 dataType: " POST "
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 })
3 data: " method=getValidNumber&t= " + Math.Random(),
4 dataType: " POST "
5 })
问题分析:
IE7缓存是为了提高效率,当访问一个URL的时候,Http Header 中会有个last modified time 不知道有没有写错,意思就是这个
会被修改掉,要是多次访问同一个URL,它会比对URL,发现在缓存中,那就到缓存中加载。
加了个随机数,它发现URL变了,那就去重新加载吧,这样数据就又可以重新获得了。
高手给我解答下啊:
我映像中 POST方法的话,是没关系。只有GET的时候才会存在这样的问题。
可能我的知识理解有误,请高手帮帮忙,解答下,在此谢过!