2013-04-12 63 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