javascript - 如何使用纯 JavaScript 链接 ajax 调用

标签 javascript ajax

我一直在寻找答案,但找不到任何带有简单 Javascript 的内容。适当的方法是什么?我尝试重复使用相同的方法,但没有成功。如何用纯 Javascript 解决这个问题?

       function someFunction(){ 
    var url = "someUrl";
    var xmlhttp = new XMLHttpRequest ();
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
    xmlhttp.onreadystatechange = function (){
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200){  
        obj = JSON.parse(xmlhttp.responseText);
      length = obj.ajax.length;
        for(var i = 0; i < length; i++ ){
            try{
              var someVar = obj.ajax.elements[i].id; 
              var url2 = "someOtherUrl"+someVar+"/features";
              var xmlhttp = new XMLHttpRequest ();
              xmlhttp.open("GET", url, true);
              xmlhttp.send();
              xmlhttp.onreadystatechange = function (){
              if (xmlhttp.readyState == 4 && xmlhttp.status == 200){  
              obj2 = JSON.parse(xmlhttp.responseText);
              length2 = obj2.ajax.length;
              for(var j= 0; j < length2; j++){ 
              var elementNames = obj2.elements[j].name; 
               }
             }
            }
           }
          }
         }

最佳答案

您可以递归地调用 someFunction()
为此,您只需在 200 ok 响应后调用相同的函数即可。
在下面的代码中,我添加了一个限制,以在链中固定数量的请求之后返回递归回调堆栈。

编辑:多个网址

callDone  = 0;
urls = ['http://url1','http://url2','http://url3'];
totalCall = urls.length - 1;

function someFunction(){
  
  //Edit: > Fetch url from array
   var url     = urls[ callDone ] ;
   var xmlhttp = new XMLHttpRequest ();
       xmlhttp .open( "GET", url, true);
       xmlhttp .send();
       xmlhttp .onreadystatechange = function ()
       {
          if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
              //your stuff with response... 
      
              if( callDone < totalCall ){
                callDone++;
                someFunction();
              }
              else{
                  return;
              }
           }
       }
}

关于javascript - 如何使用纯 JavaScript 链接 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41064712/

相关文章:

javascript - 如何检查多维数组中是否至少存在一个元素? (愚蠢的基本 Javascript 问题)

javascript - Bootstrap 4 崩溃不适用于 jquery 缩小版

php - 改进 PHP 数组以在 AJAX 上使用

javascript - 为什么我的 json 数组没有为每行输出输入类型 radio

jquery - Bootstrap 弹出窗口 : reload content with ajax

javascript - $.ajax 和 $.getJson 加载的差异

javascript - Billboard.js中获取Y轴最小和最大限制值

javascript - 根据货币获取记录

javascript - jQuery 中的动态表生成

javascript - 使用ajax加载jquery htmlbox