if(req.readyState==4 && req.status==200){
              document.getElementById("scxx").innerHTML=req.responseText;
              xskh(kh);
              scyfh();
          }
其中xskh(kh)的结果是:
if(req.readyState==4 && req.status==200){
              document.getElementById("lnfhjl").innerHTML=req.responseText;
          }
其中scyfh()的内容是
if(req.readyState==4 && req.status==200){
          document.getElementById("yfh_show").innerHTML=req.responseText;
}现在的运行结果是xskh(kh)的结果被scyfh()的结果取代,两个地方显示的都是scyfh()的结果,把scyfh()取消后,xskh(kh)显示结果正常

解决方案 »

  1.   

    你的req对像不可以共享
    看下面这段文章(在网上转载)
    在一般的Ajax引用中,也许只要一个XMLHttpRequest对象,而且onreadystatechange的处理函数必须没有参数,有参数就出错,所以,一般经常会写一个全局变量XMLHttpRequest,再在processFunction中用到这个全局变量,但是如果我要建立几个XMLHttpRequest的并发连接怎么办呢?这个就不能用全局变量了,但是处理函数又不能有参数,怎么搞,可以这样: function DoAjax (){var xhr=new XMLHttpRequest();xhr.onreadystatechange=processFunction(xhr);xhr.open("GET",url,true);xhr.send(null);}function processFunction(_xhr){    return function()  {   //do something with XMLHttpRequest;    if(_xhr.readState!=4||_xhr.status!=200) return false;    alert(_xhr.responseText);  };}怎么理解?虽然processFunction函数有参数,但是它返回的函数没有参数!而这两个函数之间是怎么进行的值传递呢?这里不妨引用一句话:“为了函数能够正确的执行,需要被函数使用的,词法作用域中的,非全局数据,
    存在于函数的闭包之中。”可以这样理解:当我们把processFunction()返回的函数,在processFunction之外使用的时候,依然要记得自己被定义时的上级作用域中的各种变量的值。这些需
    要被记住的值,就是“闭包”。