从父母ajax呼叫问题引用的数据

时间:2017-12-13 06:37:00

标签: javascript jquery ajax

我在另一个ajax函数中有一个ajax函数

myPromise.then(o => console.log(o));
myPromise.then(o => console.log(o));

当我调试代码时,我发现子ajax调用中的数据成功(数据)包含来自父ajax调用的数据。我希望那个孩子应该参考自己的数据。

3 个答案:

答案 0 :(得分:2)

这是因为您的父级ajax和您的孩子ajax使用相同的响应变量data。 尝试将您的孩子ajax的成功回复重命名为data1或其他。

$.ajax({
  url: '/some-url',
  ...
  async: false,
  ...
  success: function (data) {
      if (data.length) {
          $.ajax({
             url: '/other-url',
             ...
             success: function (data1) {
                console.log(data); // the parent response
                console.log(data1); // child response
             }
          });
      }
  }
});

答案 1 :(得分:0)

简单地使子成功响应变量名称与父成功响应不同。



 $.ajax({
              url: '../...',
              type: 'POST',
              dataType: 'JSON',                         
              success: function(data){
                      if (data.length) {

                     // complex and unreadable code
                    // cannot be posted here.

                      $.ajax({
                      url: '../library/index.php?action=librarydetailssearch',
                      type: 'POST',
                      dataType: 'JSON',
                      data: {studentid:studentid},
                                            asyn: false,
                                            success: function(childData){
                                            if (childData.length) {
                                         }
                                     }
                         });

                       }
                    });




答案 2 :(得分:0)

以下是如何嵌套Ajax电话。父母和子女呼叫的响应data将不相同。

var postData = {};
callAjax();
function callAjax(){

$.ajax({
        type:"GET",
        url: 'https://reqres.in/api/users/2',
        data:postData,
        success: function (data) {
            	console.log(data);
              data['call']='First One';
              console.log("==============");
              $.ajax({
        	    type:"GET",
        	    url: 'https://reqres.in/api/unknown',
              data:postData,
                       success: function (data) {
                     	console.log("here is "+ JSON.stringify(data)  +data['call']);
              },
              error:function (xhr, ajaxOptions, thrownError){
    					console.log("error occured  : " +thrownError)
                	} 
             	});
                  },
          error:function (xhr, ajaxOptions, thrownError){
    			console.log("error occured  : " +thrownError)
            	} 
     	});

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>