我試圖用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/ –