2011-09-01 202 views
0

我試圖用jsFiddle來模擬ajax響應,但我得到一個未定義的值。有誰知道如何做到這一點?我的小提琴是在這裏:試圖模擬jQuery中的ajax響應

http://jsfiddle.net/heaversm/v75vN/10/

,並看到「登錄」的問題點擊從結果框中

+0

你有你'的成功和錯誤函數中return'語句。 loginUser函數本身沒有return語句,這就是爲什麼你沒有定義。 –

+0

可能重複[jquery.form和跨域請求](http://stackoverflow.com/questions/5066213/jquery-form-and-cross-domain-requests) – animuson

+0

這裏是我在jsFiddle工作的一個例子與/回聲/:http://jsfiddle.net/djlerman/bbj8k9pe/ –

回答

1

您從$.ajax的回調(successerror)返回。由於$.ajax方法給你回調鉤子,你應該提供相同的loginUser功能

loginUser: function(cidVal, midVal, surveyVal, callback) { 

    $.ajax({ 
     // ... 
     success: function(data) { callback(true); }, 
     error: function(data){ callback(false);}, 
    }); 
} 

,然後使用該回調知道當操作完成:

loginUser('foo', 'bar', 'far', function (result) { 
    alert(result); 
}); 
1

你的警報語句之前運行Ajax請求已完成。你需要一個回調來UpdateUser兩個設置loginResult經過:

updateUser: function(cidVal,aidVal,sidVal,surveyVal, onSuccess){ 
    $.ajax({ 
     url: wsURL, 
     type: 'POST', 

     //data: { Function: "UpdateConsumer", ConsumerId: cidVal, ActivityId: aidVal, SurveyId: sidVal, Survey: surveyVal } 
     //Sample XML Data for the Purpose of Testing in JS Fiddle: 
     data: { xml: '<UpdateConsumer><Status>OK</Status></UpdateConsumer>' }, 
     success: function(data) { 
      if (onSuccess) { 
       onSuccess(data); 
      } 
     }, 
     error: function(data){ 
      //Error in data or unable to connect 
      return ("error"); 
     }, 
     dataType: "xml" //We're expecting XML back from the server 
    }); 

然後調用它:

loginResult = c.loginUser(cid,mid,survey, function (result) { alert(result); });