如何return数据在jQueryAjax?

How to return data in jQuery Ajax?

假设我有一个简单的函数:

    function test(url){
var AjaxCall = $.ajax({
        type: GET,
        url: url,
        data: {},
        success: function(data,status,xhr){
             return xhr
        },
        error: function(xhr,e){
             return xhr
        }
});


    if(xhr.status === 200)console.log('success');


}

所以我想要的是处理函数内部的错误,而不是在调用它并在调用中添加回调以处理这些错误之后,例如,这可能吗?

如果您使用的 jQuery 低于 1.8,是的,您可以通过设置 async = false

  function test(url){
var AjaxCall = $.ajax({
        type: GET,
        url: url,
        async : false
        data: {},
        success: function(data,status,xhr){
             return xhr
        },
        error: function(xhr,e){
             return xhr
        }
});
}

请注意,这已被弃用,并且有充分的理由

As of jQuery 1.8, the use of async: false with jqXHR ($.Deferred) is deprecated; you must use the success/error/complete callback options instead of the corresponding methods of the jqXHR object such as jqXHR.done() or the deprecated jqXHR.success().

http://api.jquery.com/jquery.ajax/

function test(url){
    var AjaxCall = $.ajax({
            type: GET,
            url: url,
            data: {},
            complete: function(xhr, status){
                 if(xhr.status === 200)console.log('success');
            }
    });
}

不,您不能使用此方法 return 来自函数的值。这不是异步的工作方式。如果你想 return,你必须设置 async = false,这样就违背了使用 ajax.

的目的。