0

是否可以仅使用 javascript 而不使用 Jquery 来执行多个 ajax 调用。我用两个 ajax 调用尝试了下面的 javascript 代码,但是当我放置第二个 ajax 调用时代码不起作用

<script type="text/javascript">

var class1;
var class2;
var sec1;
var sec2;

function func()
{
class1 = document.getElementById('selcla');
class2 = class1.options[class1.selectedIndex].value;

if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
      }
else
      {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
xmlhttp.onreadystatechange=function()
      {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("secdiv").innerHTML=xmlhttp.responseText;
        }
      }
xmlhttp.open("GET","getsec.php?q="+class2,true);
xmlhttp.send();

}


function funcsec()
{
sec1 = document.getElementById('selsec');
sec2 = sec1.options[sec1.selectedIndex].value;
alert("selecting class and section details " + class2 + " " + sec2 );

    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
      }
else
      {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }

xmlhttp.onreadystatechange=function()
      {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        alert("successfully received " );
        document.getElementById("studiv").innerHTML=xmlhttp.responseText;
        }
    else 
        alert("unsuccessful ajax second call ");
      }
xmlhttp.open("GET","getstu.php?x="+class2"&y="+sec2,true);
xmlhttp.send();
}

4

1 回答 1

0

是的,但是您需要为您发出的每个请求使用不同的“xmlhttp”处理程序。设置一个新的 xmlhttp 对象并使用新对象发出第二个请求。

我的建议是将初始化 xmlhttp 对象的部分分解为一个独立的函数,并使用它来创建这些对象的一些实例。

但是,我必须反对这种方法。最好使用库来处理 ajax 请求。

于 2013-09-03T10:36:16.507 回答