我有一个JavaScript
方法,我们必须调用多个ajax
调用,并在所有可用时使用该数据。在这种情况下,我们使用了jQuery
。但是,当方法与单独执行时(jQuery
调用)不同时,使用ajax
收到的数据。
以下是方法调用和收到的数据。
每当我调用相同的ajax
方法时,数据都包含所有元素,但是当我使用when方法调用它时,它被包装在一个数组中。您能否告诉我遗漏的内容或如何提取数据。
function retailerProfile(){
$("#retailerProfileBody").empty();
$('#retailerProfile').modal('show');
$.when($.ajax({
url: 'products/getAllProductsByCategory.json',
dataType: "json",
type: "POST",
data: {
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
}
}),
$.ajax({
url: 'useroperation/findRetailerByUserName.json',
dataType: "json",
type: "POST",
data: {
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
}
})).done(function( products,data){
console.log( "user :"+data.user);
console.log( "data :"+data);
console.log( "products :"+products);
var profile = '<div id="'+data.id +'">'
+'<div class="well well-sm">'
+'<div class="row">'
+'<div class="col-sm-4 col-md-6"><h4>'+data.user.firstName+' '+data.user.lastName+'</h4>'
+'<address>'
+'<strong>'+data.shopName+'</strong><br/>'
+data.address.addrLine1+'<br/>'
+data.address.addrLine2+'<br/>'
+data.address.city+'<br/>'
+data.address.state+'<br/>'
+'<abbr title="Phone">P:</abbr> '+((!data.user.mobile)?'':data.user.mobile)
+'</address>'
+'<p>'
+'<i class="glyphicon glyphicon-envelope"></i> '+data.user.email
+'<br/><i class="glyphicon glyphicon-map-marker"></i> '+data.address.locality
+'</p>'
+'</div>';
profile+='<div class="col-sm-4 col-md-6"><h4>Products</h4><br/>'
+'<ul class="list-group">';
$.each(data.products,function(k,product){
profile+='<li class="list-group-item">'+ product.productName +'('+product.category +')</li>';
});
profile+='</ul>'
+'</div>'
+'</div>'
+'</div>'
+'</div>'
;
$("#retailerProfileBody").append(profile);
});
}
控制台日志:数据:[对象对象],成功,[对象对象]产品 :[object Object],[object Object],[object Object],[object 对象],[对象对象],[对象对象],[对象对象],[对象 对象],成功,[对象对象]
答案 0 :(得分:0)
不同之处在于功能行为何时。在函数中,每个参数都是一个具有以下结构的数组:[data,statusText,jqXHR]。