gpt4 book ai didi

jQuery ajax 错误函数

转载 作者:IT王子 更新时间:2023-10-29 03:24:47 26 4
gpt4 key购买 nike

我有一个 ajax 调用将数据传递到一个页面,然后该页面返回一个值。

我已经从页面检索到成功的调用,但我已经对其进行了编码,以便它在 asp 中引发错误。我如何从 jquery 中检索该错误?

例如:

cache: false,
url: "addInterview_Code.asp",
type: "POST",
datatype: "text",
data: strData,
success: function (html) {
alert('successful : ' + html);
$("#result").html("Successful");
},
error: function (error) {
**alert('error; ' + eval(error));**
}

是我不明白的错误位。在函数中我需要输入什么参数,以便我可以使用我在服务器中引发的错误消息。

最佳答案

Ajax error 函数中的必需参数是 jqXHR, exception,您可以像下面这样使用它:

$.ajax({
url: 'some_unknown_page.html',
success: function (response) {
$('#post').html(response.responseText);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
},
});

DEMO FIDDLE


参数

jqXHR:

它实际上是一个错误对象,看起来像这样

Ajax error jqXHR object

您还可以在自己的浏览器控制台中查看此信息,方法是在 error 函数中使用 console.log,例如:

error: function (jqXHR, exception) {
console.log(jqXHR);
// Your error handling logic here..
}

我们正在使用此对象的 status 属性来获取错误代码,例如如果我们获取 status = 404 这意味着无法找到所请求的页面。它根本不存在。基于该状态代码,我们可以将用户重定向到登录页面或我们的业务逻辑需要的任何内容。

异常:

这是显示异常类型的字符串变量。因此,如果我们收到 404 错误,exception 文本将只是“错误”。同样,我们可能会像其他异常文本一样得到“超时”、“中止”。


Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are deprecated as of jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.

因此,如果您使用的是 jQuery 1.8 或更高版本,我们将需要更新成功和错误函数逻辑,例如:-

// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax("some_unknown_page.html")
.done(function (response) {
// success logic here
$('#post').html(response.responseText);
})
.fail(function (jqXHR, exception) {
// Our error logic here
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
})
.always(function () {
alert("complete");
});

希望对您有所帮助!

关于jQuery ajax 错误函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6792878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com