2011-09-01 164 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); });