我试图用jsFiddle来模拟ajax响应,但我得到一个未定义的值。有谁知道如何做到这一点?我的小提琴是在这里:试图模拟jQuery中的ajax响应
http://jsfiddle.net/heaversm/v75vN/10/
,并看到“登录”的问题点击从结果框中
我试图用jsFiddle来模拟ajax响应,但我得到一个未定义的值。有谁知道如何做到这一点?我的小提琴是在这里:试图模拟jQuery中的ajax响应
http://jsfiddle.net/heaversm/v75vN/10/
,并看到“登录”的问题点击从结果框中
您从$.ajax
的回调(success
和error
)返回。由于$.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);
});
你的警报语句之前运行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); });
你有你'的成功和错误函数中return'语句。 loginUser函数本身没有return语句,这就是为什么你没有定义。 –
可能重复[jquery.form和跨域请求](http://stackoverflow.com/questions/5066213/jquery-form-and-cross-domain-requests) – animuson
这里是我在jsFiddle工作的一个例子与/回声/:http://jsfiddle.net/djlerman/bbj8k9pe/ –