IE与Firefox在处理Ajax时的一点小差异。
在用Ajax提交一个表单的时候,IE正常,Firefox却在提交表单后刷新了当前页,在浏览器地址栏里能看见提交的参数,这就不符合Ajax的思想了。
花了好长时间跟踪才发现,当Ajax 发送一个异步请求的时候,IE在执行完ajax.send()后就会停下来,而Firefox则不会。
解决方法其实很简单:
1、在表单按钮触发事件时这么写 <button onclick='return doSubmit()'>提交</button>
2、在ajax.send()之后return false来强制终止执行
1 function doSubmit(){
2 var f = $('sForm');
3 var oot = $('tips');
4 url = "./user.php?action=add&username="+f.username.value+"&password="+f.password.value;
5 //alert(url);
6 ajax.open("GET", url, true);
7 ajax.onreadystatechange = function(){
8 if(ajax.readyState == 4){
9 if(ajax.status == 200){
10 //alert(ajax.responseText);
11 showTips(oot,'yes',ajax.responseText,2000);
12 }else{
13 showTips(oot,'no',ajax_err,2000);
14 }
15 };
16 }
17 ajax.send(null);
18 return false;
19 }