【发布时间】:2021-08-30 14:29:47
【问题描述】:
我得到了下面代码的错误;
未捕获的类型错误:无法读取未定义的属性“readyState”
当我尝试删除 readyState 以查看我收到该错误时发生了什么;
TypeError: Cannot read property 'abort' of undefined
get: function () {
var ajaxReq = $.ajax({
type: 'GET',
url: data.url,
dataType: "json",
success: function (response, status) {
callback(response);
},
beforeSend: function () {
if (ajaxReq != 'ToCancelPrevReq' && ajaxReq.readyState < 4) {
ajaxReq.abort();
}
}
});
}
该功能与按键一起使用;
keypress: function () {
setTimeout(function () {
if ($(OnePageCheckout.Selector.CardNumber).val().length == 7) {
$(".payment-installment-container").removeClass("d-none");
InvUtility.Loader.Open();
var model = {
value: $(OnePageCheckout.Selector.CardNumber).val()
}
OnePageCheckout.OnCardNumberUpdate.event(model);
}
}, 1000)
OnePageCheckout.OnCardNumberUpdate.init();
},
按键是多次发送请求,我想确保成功过程只工作一次
【问题讨论】:
-
为什么在发送 AJAX 请求之前检查就绪状态?在收到响应之前,它不会设置为
4。 -
您是否要中止 previous 请求?
-
是的 @Barmar Ajax 使用按键和按键发送请求这么多次,我想确保成功过程只工作一次。我能做些什么来安排这样的事情
-
您可以禁用按键事件,直到该 ajax 调用完成
标签: javascript jquery ajax abort readystate