2013-04-12 28 views
1

我需要依次执行几个jQuery Ajax调用。我使用回调函数,因此每个调用都有一个执行下一个Ajax调用的成功函数等等。 这真是一团糟,非常难读取的代码。搜索后发现Frame.js看起来很棒,但是......我无法让它工作。带回调和Frame.js的JQuery Ajax

为了简化问题,我只是试图调用第一个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永远是不确定的!请帮助!

回答

0

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

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

对不起,我在这里复制粘贴错误的代码,在我的webservices.js中使用正确的变量名称,所以这不是问题。 – Juan