我在另一个ajax函数中有一个ajax函数
myPromise.then(o => console.log(o));
myPromise.then(o => console.log(o));
当我调试代码时,我发现子ajax调用中的数据成功(数据)包含来自父ajax调用的数据。我希望那个孩子应该参考自己的数据。
答案 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>