标准 AJAX 调用应该如何完成、成功和错误部分
How should be a standard AJAX call with complete, success and error section
我使用以下 AJAX
调用以便在 MVC
中进行 CRUD
操作。但是,由于complete、success、[=28=的error函数有很多不同的用法] 电话,我想澄清的是它们最常见或最合适的用法。在某些示例中,这些函数没有参数,但在其他示例中有多个参数(即 jqXHR
、textStatus
、errorThrown
)。当然,我对每种情况都使用了必要的操作,即显示通知或确认消息等,但我只需要默认或标准使用它们中的每一个。您能否简要解释一下 post AJAX
用于 CRUD
操作的标准用法的最合适方法?
$.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);
}
});
您会看到不同的示例,因为:
- 一些参数是可选的或混合类型
- 其中一些,仅取决于作者决定在回调函数中命名参数的名称。
- 这些回调及其参数的某些使用取决于作者当时使用的 jQuery 版本。
我建议您始终根据所用版本的文档来使用 .ajax。因此,如果您正在为您的应用程序寻找使用 .ajax 的标准方法,最好的办法是遵循文档语法:
http://api.jquery.com/jquery.ajax/
该文档非常善于描述 jQuery 的哪些版本发生了哪些变化,因此注意这一点可以避免您的应用程序出现问题。
来自 jQuery 文档:
完成
类型:函数(jqXHR jqXHR,字符串 textStatus)
请求完成时调用的函数(执行成功和错误回调后)。该函数传递了两个参数:jqXHR(在 jQuery 1.4.x、XMLHTTPRequest 中)对象和一个对请求状态进行分类的字符串("success"、"notmodified"、"nocontent"、"error"、"timeout"、"abort" 或 "parsererror")。从 jQuery 1.5 开始,完整的设置可以接受函数数组。每个函数将依次被调用。这是一个 Ajax 事件。
成功
类型:函数(任何数据、字符串 textStatus、jqXHR jqXHR)
请求成功时调用的函数。该函数传递三个参数: 从服务器返回的数据,根据 dataType 参数或 dataFilter 回调函数(如果指定)进行格式化;描述状态的字符串;和 jqXHR(在 jQuery 1.4.x,XMLHttpRequest 中)对象。从 jQuery 1.5 开始,成功设置可以接受函数数组。每个函数将依次被调用。这是一个 Ajax 事件。
错误
类型:函数(jqXHR jqXHR,字符串 textStatus,字符串 errorThrown)
请求失败时调用的函数。该函数接收三个参数:jqXHR(在 jQuery 1.4.x,XMLHttpRequest 中)对象,一个描述发生的错误类型的字符串和一个可选的异常对象(如果发生的话)。第二个参数(除 null 外)的可能值为 "timeout"、"error"、"abort" 和 "parsererror"。当发生 HTTP 错误时,errorThrown 接收 HTTP 状态的文本部分,例如 "Not Found" 或 "Internal Server Error." 从 jQuery 1.5 开始,错误设置可以接受函数数组。每个函数将依次被调用。注意:跨域脚本和跨域 JSONP 请求不会调用此处理程序。这是一个 Ajax 事件。
我使用以下 AJAX
调用以便在 MVC
中进行 CRUD
操作。但是,由于complete、success、[=28=的error函数有很多不同的用法] 电话,我想澄清的是它们最常见或最合适的用法。在某些示例中,这些函数没有参数,但在其他示例中有多个参数(即 jqXHR
、textStatus
、errorThrown
)。当然,我对每种情况都使用了必要的操作,即显示通知或确认消息等,但我只需要默认或标准使用它们中的每一个。您能否简要解释一下 post AJAX
用于 CRUD
操作的标准用法的最合适方法?
$.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);
}
});
您会看到不同的示例,因为:
- 一些参数是可选的或混合类型
- 其中一些,仅取决于作者决定在回调函数中命名参数的名称。
- 这些回调及其参数的某些使用取决于作者当时使用的 jQuery 版本。
我建议您始终根据所用版本的文档来使用 .ajax。因此,如果您正在为您的应用程序寻找使用 .ajax 的标准方法,最好的办法是遵循文档语法:
http://api.jquery.com/jquery.ajax/
该文档非常善于描述 jQuery 的哪些版本发生了哪些变化,因此注意这一点可以避免您的应用程序出现问题。
来自 jQuery 文档:
完成
类型:函数(jqXHR jqXHR,字符串 textStatus)
请求完成时调用的函数(执行成功和错误回调后)。该函数传递了两个参数:jqXHR(在 jQuery 1.4.x、XMLHTTPRequest 中)对象和一个对请求状态进行分类的字符串("success"、"notmodified"、"nocontent"、"error"、"timeout"、"abort" 或 "parsererror")。从 jQuery 1.5 开始,完整的设置可以接受函数数组。每个函数将依次被调用。这是一个 Ajax 事件。
成功
类型:函数(任何数据、字符串 textStatus、jqXHR jqXHR)
请求成功时调用的函数。该函数传递三个参数: 从服务器返回的数据,根据 dataType 参数或 dataFilter 回调函数(如果指定)进行格式化;描述状态的字符串;和 jqXHR(在 jQuery 1.4.x,XMLHttpRequest 中)对象。从 jQuery 1.5 开始,成功设置可以接受函数数组。每个函数将依次被调用。这是一个 Ajax 事件。
错误
类型:函数(jqXHR jqXHR,字符串 textStatus,字符串 errorThrown)
请求失败时调用的函数。该函数接收三个参数:jqXHR(在 jQuery 1.4.x,XMLHttpRequest 中)对象,一个描述发生的错误类型的字符串和一个可选的异常对象(如果发生的话)。第二个参数(除 null 外)的可能值为 "timeout"、"error"、"abort" 和 "parsererror"。当发生 HTTP 错误时,errorThrown 接收 HTTP 状态的文本部分,例如 "Not Found" 或 "Internal Server Error." 从 jQuery 1.5 开始,错误设置可以接受函数数组。每个函数将依次被调用。注意:跨域脚本和跨域 JSONP 请求不会调用此处理程序。这是一个 Ajax 事件。