2006年11月29日

今天在项目里用了写ajax技术其中出现了些问题,后来经过努力终于解决了,特意记下来免得下次再遇到这样的问题浪费时间.

       我用ajax来验证当前用户是否登陆,就是去session中取用户变量,如果存在就证明当前用户已登陆。方法写在一个action中(使用了struts)在jsp页面中我希望用open的同步方法去访问一个验证用户的方法比如叫:checkedUser.do,那么代码如下:
 xmlHttp.open("GET", "checkedUser.do", false);
注意我把第三个参数设置成了false,也就是同步机制;这样写在IE中没有问题,当我用FireFox时,没有触发 onreadystatechange 方法,也就不能进一步得到验证结果了。后来改成异步机制,也就是把open的第三个参数设成true,然后把其他的javaScript方法改了一下,就可以了。

      还遇到一个问题,我在jsp页面中用struts 标签,<text:textarea property="context"……./> ,结果在FireFox中用
document.getElementById("context") 得不到对象,在ie中就没问题,后来改成<textarea …../> 就可以了。

       还有我发现ajax open方法在IE中第一次会去访问设置的URL,第二次就不会了。后来得知是浏览器cache的问题,我在返回的方法中加入 response.setHeader("Cache-Control", "no-cache") 就可以了