带回调和Frame.js的JQuery Ajax

时间:2013-04-12 16:44:27

标签: javascript jquery asynchronous

我需要按顺序执行几个jquery Ajax调用。我正在使用回调,因此每个调用都有一个成功函数来执行下一个Ajax调用,依此类推。 这真是一个混乱和非常难以阅读的代码。在谷歌搜索找到看起来很棒的Frame.js但是...我无法使它工作。

为了简化问题,我只是试图调用第一个Web服务,我正在这样做:

文件:MyPage.aspx:

Frame(function (next) {
    this.request = { CodSeguro: 917766 };
        Emision_ConsultarSeguro(request, next, next);
        next();
    });
    Frame(function (next,ajaxResponse) 
    {
        alert(ajaxResponse);
    });

文件:WebServices.js:

function Emision_ConsultarSeguro(requestData, okFunction, failFunction) 
{
    runAjax("Emision/emision.asmx/Consultar", request, okFunction, failFunction);
}

档案:Common.js

function runAjax(url, request, okFunction, failFunction) 
{
    var dto = "{'request':" + JSON.stringify(request) + "}";
    execAjax(url, dto, okFunction, failFunction);
}

文件:Ajax.js

function execAjax(url, data, successFunction, errorFunction) 
{
    return $.ajax({
        type: "POST",
        url: GetUrl() + url,
        data: data,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) { 
            successFunction(data); 
        },
        error: function(XMLHttpRequest, textStatus, errorThrown {
            errorFunction(XMLHttpRequest, textStatus, errorThrown); 
        }
    });
}

执行Ajax调用,但ajaxResponse始终未定义!求救!

1 个答案:

答案 0 :(得分:0)

看起来在WebServices.js下,你应该用requestData替换你的请求参数。

function Emision_ConsultarSeguro(requestData, okFunction, failFunction) 
{
    runAjax("Emision/emision.asmx/Consultar", requestData, okFunction, failFunction);
}