【问题标题】:Trying to simulate an ajax response in jquery尝试在 jquery 中模拟 ajax 响应
【发布时间】:2011-09-01 21:54:59
【问题描述】:

我正在尝试使用 jsFiddle 来模拟 ajax 响应,但我得到了一个未定义的值。有谁知道如何做到这一点?我的小提琴在这里:

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

要查看问题,请单击结果框中的“登录”

【问题讨论】:

标签: javascript jquery object


【解决方案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);
});

【讨论】:

    【解决方案2】:

    您的警报语句在 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); } );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多