整了我好久了,马上就要上线了,急死了。麻烦大侠们指点迷津。这是我的代码
var xmlhttp; 

function putData() { 
var continent = document.getElementById("signup_continent").value; 
try{ 
  xmlhttp= new ActiveXObject('Msxml2.XMLHTTP'); 
}catch(e){ 
  try{ 
   xmlhttp= new ActiveXObject('Microsoft.XMLHTTP'); 
  }catch(e){ 
  try{ 
   xmlhttp= new XMLHttpRequest(); 
  }catch(e){} 
  } 
    }
       

     xmlhttp.onreadystatechange = statechange;
     xmlhttp.open("GET","continentToCountry.action?continent="+continent,true);
 xmlhttp.Send(null); 
   }  
function statechange() {
 if (xmlhttp.readyState == 4) {
 alert("b");
  if (xmlhttp.status == 200) {
  alert("b");
   FillData(xmlhttp.responseText);
    }
}
  }  
    function FillData(strcountry) {
    
     document.getElementById("signup_nationality").options.length = 0;
     var strcountrys = strcountry.split(',');
     for (var i = 0; i < strcountrys.length; i++) {
        document.getElementById("signup_nationality").add(new Option(strcountrys[i], strcountrys[i])); 
     } 
   }

解决方案 »

  1.   

    readystate始终为1故不能执行
    if (xmlhttp.readyState == 4) {
     alert("b");
      if (xmlhttp.status == 200) {
      alert("b");
       FillData(xmlhttp.responseText);
        }
    }
    这是问题所在,但我不知道在火狐下如何获取服务器返回来的值呢
    但我不知道在火狐下如何获取服务器返回来的值呢
      

  2.   

    readystate始终为1故不能执行
    if (xmlhttp.readyState == 4) {
    alert("b");
    if (xmlhttp.status == 200) {
    alert("b");
    FillData(xmlhttp.responseText);
    }
    }
    这是问题所在,但我不知道在火狐下如何获取服务器返回来的值呢
    但我不知道在火狐下如何获取服务器返回来的值呢 
      

  3.   

    现在可以在火狐下运行了,但必须加一条alert信息才能成功,否则运行不了
    function statechange2() {
    alert("222");
    if (xmlhttp.readyState == 4) {
      if (xmlhttp.status == 200) {
       FillData2(xmlhttp.responseText);
        }
    }
       }  怎么解决啊大侠
      

  4.   


    var xmlHttp;
    function createHttpRequest(){  
       if(window.XMLHttpRequest){
           xmlHttp=new XMLHttpRequest();
       }else if(window.ActiveXObject){
        try{
           xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
        try{
         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }catch(e){}
       }
      }
    }
    这样试试呢?
      

  5.   

    怎么还在用原始自己写的ajax?
    整个框架的随便用
      

  6.   


    经测试我的xmlhttp对象已经获得。问题如上所说,网上说是alert延迟的作用。这样的话假如我不用alert该怎么办呢
      

  7.   

    这个应该是多线程引起的吧。alert前后readyState 不一致 我记得我以前是可以的你再加个if readyState ==1 让他 等待一下 再判定状态 直到readyState ==4 在进入你的循环 你看可以不
      

  8.   

    用JQuery吧,jQuery夸平台的。而且他带的ajax比js的简单多了。