代码之家  ›  专栏  ›  技术社区  ›  Jack

标准AJAX调用应该如何包含完整、成功和错误部分

  •  1
  • Jack  · 技术社区  · 9 年前

    我使用以下内容 AJAX 打电话以便 CRUD MVC 然而,由于有许多不同的用法 完成 , 成功 , 错误 函数的AJAX调用,我想澄清一下,想要的是最常见或最合适的用法。在一些示例中,这些函数没有参数,但在其他示例中有几个参数(即。 jqXHR , textStatus , errorThrown ). 当然,我对每种情况都使用必要的操作,例如显示通知或确认消息等,但我只需要默认或标准用法。请您简要解释一下,并发布最适合标准用法的 AJAX 对于 原油

    $.ajax({
        type: "POST",
        url: '@Url.Action("Insert", "Account")',
        cache: false,
        dataType: "json",
        data: formdata,
        complete: function () {
            //???
        },
        success: function (data, textStatus, XMLHttpRequest) {
            // ???
        },
        error: function (response) {
            // ???
        },
    
        //other example usages of error function :::
        error: function (jqXHR, textStatus, errorThrown) {
            console.log(errorThrown);
        },
        error: function (xhr) {
            console.log('Error: ' + xhr.statusText);
        }
    }); 
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   Robert Wade    9 年前

    您将看到这些不同的示例,因为:

    • 一些参数是可选的或混合类型的
    • 其中的一些,仅仅取决于作者决定在回调函数中为参数命名的内容。
    • 这些回调及其参数的一些使用取决于作者当时使用的jQuery版本。

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

    该文档很好地描述了jQuery的哪些版本发生了哪些变化,因此只要注意这一点,就可以避免应用程序中出现问题。

    在jQuery文档中:

    完成

    类型:函数(jqXHR jqXHR,String textStatus)

    请求完成时(执行成功和错误回调后)要调用的函数。该函数传递了两个参数:jqXHR(在jQuery 1.4.x中,XMLHTTPRequest)对象和一个对请求状态进行分类的字符串(“success”、“notmodified”、“nocontent”、“error”、“timeout”、“abort”或“parserror”)。从jQuery1.5开始,完整的设置可以接受函数数组。将依次调用每个函数。这是一个Ajax事件。

    成功

    类型:函数(任何数据,字符串文本状态,jqXHR jqXHR)

    请求成功时要调用的函数。该函数传递三个参数:从服务器返回的数据,根据dataType参数或dataFilter回调函数格式化(如果指定);描述状态的字符串;和jqXHR(在jQuery 1.4.x中,XMLHttpRequest)对象。从jQuery1.5开始,成功设置可以接受一系列函数。将依次调用每个函数。这是一个Ajax事件。

    错误

    类型:函数(jqXHR jqXHR,String textStatus,String errorThrown)

    请求失败时要调用的函数。该函数接收三个参数:jqXHR(在jQuery 1.4.x中,XMLHttpRequest)对象、描述发生的错误类型的字符串以及可选的异常对象(如果发生)。第二个参数的可能值(除了null)是“timeout”、“error”、“abort”和“parserror”。当发生HTTP错误时,errorThrown接收HTTP状态的文本部分,例如“未找到”或“内部服务器错误”。从jQuery 1.5开始,错误设置可以接受一系列函数。将依次调用每个函数。注意:跨域脚本和跨域JSONP请求不调用此处理程序。这是一个Ajax事件。