无法读取未定义的属性“abort”
2019-09-18
45
每次用户输入时,我都会使用
$.get
jquery 函数。
我的函数如下所示
function checkField(va) {
$.get(
'/admin-tool',
{
ctrl : 'checker',
value : va
},
function(d) {
if($('.answer',d).text() != '1') {
$('.main h1').text('Something went wrong, Read the instructions carefuly');
}
});
}
我需要使用
abort()
函数来阻止之前的调用在最后一个调用之后完成其 xhr。
所以我这样做了
var xhrcall;
function checkField(va) {
xhrcall.abort();
xhrcall = $.get(
[...]
});
}
但是我出现了错误
Cannot read propery 'abort' of undefined
当然它没有定义,但是 ajax 函数甚至不再触发。
我在这里误解了什么吗?
1个回答
我已为您的代码提供了一些注释。请检查它们。
var xhrcall; // no value assigned here and probably nowhere else -> undefined!
function checkField(va) {
xhrcall.abort(); // so this line causes the error and I believe JS execution stops here!!
xhrcall = $.get(
[...]
});
}
如果您想执行
$.get
,请尝试以下操作(基本上,仅当
xhrcall
已初始化时才调用 abort()):
function checkField(va) {
if (xhrcall) {
xhrcall.abort();
}
xhrcall = $.get(
[...]
});
}
祝您黑客愉快 :)
ikos23
2019-09-18