gpt4 book ai didi

javascript - Ajax 超时不起作用且未显示 "Timeout"状态

转载 作者:行者123 更新时间:2023-12-02 18:35:34 25 4
gpt4 key购买 nike

当单击按钮时,我试图在提交表单之前对其进行连接检查。这个想法是查看此代码中尚未实现的超时请求“Timeout()...”,并继续迭代 Ajax 直到找到连接,因为有时在现场连接可能会断开。当找到连接时,它会提醒用户,如果点击提交后连接断开,则会成功提交。这是我到目前为止所拥有的:

function upload_prepformDiff() {
$.ajax({
type: 'POST',
url: './php/upload_prepform.php',
timeout: 2000, //2 seconds, for testing purposes
data: prepform,
async: false,//Omitted now as of this post
dataType: 'text',
success: function() {
alert("Your Prep form has been submitted.");
window.top.location.replace('./');
},

error: function (xhr, status, error) {
if(status == "timeout") {
alert("Internet connection has been lost! Please wait until you are notified and do not continue.");
} else {
alert(status + " " + error);
}
}
});
};

问题是,即使超时值较低,我也不会收到“超时”状态消息,而是收到“错误”。所以它永远不会抛出我需要的超时错误,对于我得到的错误:错误:NETWORK_ERR:XMLHttpRequest Exception 101

所以ajax确实注意到没有连接,但这就是errorThrown显示的内容,而textStatus分别是(xhr,status,error)的“错误”。所以我尝试做的就是做一些即兴创作,并使用某种类型的 error.indexOf() 处理 Ajax 中抛出的错误字符串,但这不起作用, error.contains("NETWORK_ERR") 或任何类型的也不起作用正则表达式命令。有什么改进的想法或者为什么我没有超时?谢谢!

最佳答案

我猜这对你来说可能有点晚了,但尽管如此......

如果您已指定

async as 'false'

,超时属性将被忽略。

关于错误的处理,你可以访问之前的SO问题: status of ajax or post request

希望这有帮助! :)

关于javascript - Ajax 超时不起作用且未显示 "Timeout"状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17353849/

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