gpt4 book ai didi

javascript - jQuery Ajax 错误对象未定义

转载 作者:行者123 更新时间:2023-11-29 17:06:41 25 4
gpt4 key购买 nike

我有一个使用 jquery ajax 调用的网络方法。我点击了错误回调。很好 - 我想我会分析错误 - 但它是未定义的。

错误值未定义的可能性有哪些?如果这是一个微不足道的错误,该如何解决?

注意:xhrstatuserror 是未定义的。

注意:我使用的是 Chrome 35 版和 IE 8

代码

$(document).ready(function () {
function errorFunction(xhr, status, error) {
console.log(xhr);
if (xhr == 'undefined' || xhr == undefined) {
alert('undefined');
} else {
alert('object is there');
}
alert(status);
alert(error);
}

$.ajax({
type: "POST",
url: "admPlantParametersViewEdit.aspx/GetResult",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("success");
alert(msg.d);
},
error: errorFunction()
});
});

最佳答案

你需要传递一个函数的引用,所以改变这个:

error: errorFunction()

为此:

error: errorFunction

当您将括号放在那里时,您实际上是在立即调用该函数并传递它的返回值。如果没有括号,它只是对函数的引用,稍后可以由 jQuery ajax 基础结构调用。


为了进一步了解发生了什么,您的代码 error: errorFunction() 立即调用 errorFunction() 并且没有参数(这是您在调试中看到的) 然后从该函数获取返回值(未定义),然后将其放入传递给 ajax 调用的数据结构中。所以从本质上讲,您所做的相当于:

$(document).ready(function () {
function errorFunction(xhr, status, error) {
console.log(xhr);
if (xhr == 'undefined' || xhr == undefined) {
alert('undefined');
} else {
alert('object is there');
}
alert(status);
alert(error);
}

// obviously, not what you intended
errorFunction();

$.ajax({
type: "POST",
url: "admPlantParametersViewEdit.aspx/GetResult",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("success");
alert(msg.d);
},
// also not what you intended
error: undefined
});
});

如果您没有在其他地方使用 errorFunction(),那么更常见的方法是像在 success 处理程序中那样内联定义它像这样:

$(document).ready(function () {
$.ajax({
type: "POST",
url: "admPlantParametersViewEdit.aspx/GetResult",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("success");
alert(msg.d);
},
error: function(xhr, status, error) {
console.log(xhr);
if (xhr == 'undefined' || xhr == undefined) {
alert('undefined');
} else {
alert('object is there');
}
alert(status);
alert(error);
}
});
});

关于javascript - jQuery Ajax 错误对象未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24174404/

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