function dispatchVehicle(){
if(!chickAll()){
return false;
}
var action = window.url + '?&method=dispatchVehicles'
+ "&conLclFlag=" + conLclFlag
+ "&containerId=" + containerId
+ "&vehicleNameFlag=1"
+ "&t=" + (new Date()).getTime();
jQuery.getJSON(action, $('#vehicleForm').serialize(), function(data) {
if(data.flag){
if (window.confirm(data.message)) {
alert(1);
var action1 = window.url + '?&method=dispatchVehicles'
+ "&conLclFlag=" + conLclFlag
+ "&containerId=" + containerId
+ "&vehicleNameFlag=2"
+ "&t=" + (new Date()).getTime();
alert(2);
jQuery.getJSON(action1, $('#vehicleForm').serialize(), function(data1) {
alert(3);
if(!data1.flag){
alert(data1.message);
}
if (data1.succ) {
window.parent.location.reload();
window.parent.ClosePop();
}
});
}
}
if (data.succ) {
window.parent.location.reload();
window.parent.ClosePop();
}
});
}
我需要通过jQuery的getJSon函数执行两次ajax调用。
问题在于,一旦执行了一个调用并且data.flag为真,就调用第二个getJSon函数(因为我需要第一个调用的结果作为第二个调用中的条件)。 但是当函数运行时,代码“alert(3)”无法执行。
任何帮助将不胜感激。
答案 0 :(得分:0)
AFAIK,.getJSON()
应该嵌套好。
你可以尝试下面我的代码版本但是说实话,我所做的就是重新安排事情以提高效率,并且更好地保证内部.getJSON()
与外部相同,并且需要变异。嵌套和结构在其他方面是相同的。
的javascript:
function dispatchVehicle(){
if(!chickAll()){
return false;
}
var action = window.url + '?' + $('#vehicleForm').serialize();//reusable string
var dataObj = {//reusable object
method: 'dispatchVehicles',
conLclFlag: conLclFlag,
containerId: containerId,
vehicleNameFlag: 1,
t: (new Date()).getTime()
};
$.getJSON(action, dataObj, function(data) {
if(data.flag){
if (window.confirm(data.message)) {
alert(1);
//now reuse action and dataObj with a couple of changed properties
dataObj.vehicleNameFlag = 2;
dataObj.t = (new Date()).getTime();
alert(2);
$.getJSON(action, dataObj, function(data1) {
alert(3);
if(!data1.flag){
alert(data1.message);
}
if (data1.succ) {
window.parent.ClosePop();
window.parent.location.reload();
}
});
}
}
if (data.succ) {
window.parent.location.reload();
window.parent.ClosePop();
}
});
}