Jquery 嵌套的$.getJSON,调用无效

Jquery 嵌套的$.getJSON,调用无效,jquery,ajax,json,getjson,Jquery,Ajax,Json,Getjson,我需要通过jQuery的getJSon函数执行两个ajax调用 问题是,一旦执行了其中一个调用并且data.flag为true,就调用第二个getJSon函数,因为我需要第一个调用的结果作为第二个调用的条件。 但是当函数运行时,代码alert3无法执行 任何帮助都将不胜感激。AFAIK.getJSON应该可以 您可以在下面尝试我的代码版本,不过老实说,我所做的只是为了提高效率而重新安排代码,并进一步保证内部.getJSON与外部的相同,但有必要进行更改。嵌套和结构在其他方面是相同的 javasc

我需要通过jQuery的getJSon函数执行两个ajax调用

问题是,一旦执行了其中一个调用并且data.flag为true,就调用第二个getJSon函数,因为我需要第一个调用的结果作为第二个调用的条件。 但是当函数运行时,代码alert3无法执行

任何帮助都将不胜感激。

AFAIK.getJSON应该可以

您可以在下面尝试我的代码版本,不过老实说,我所做的只是为了提高效率而重新安排代码,并进一步保证内部.getJSON与外部的相同,但有必要进行更改。嵌套和结构在其他方面是相同的

javascript:

    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();
            }
        });
    }

不要嵌套它,而是尝试设置回调数组。action1的字符串是什么。你能在frebug中发布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();
        }
    });
}