我正在尝试将表单提交到准备接收它的外部站点,但是当外部站点完成并且导致我的站点卡住等待而没有响应时,只有使用form.submit()
我写了以下内容来尝试处理这个问题,但是没有抛出超时。
$.ajax({
async: false,
url: url,
data: $('#tppForm').serialize(),
type: 'POST',
timeout: 5000,
statusCode: {
404: function() {
console.log('Site Not Found');
},
500: function() {
console.log('Site Down');
}
},
error: function() {
console.log('Timeout');
}
});
答案 0 :(得分:1)
我检查了jQuery documentation以及其他来源,timeout:
没有明确指定async:false
的行为。
我的建议是将其更改为async:true
,以更好地处理远程(网络)呼叫的不可预测性。请参阅jquery ajax() async false和jQuery ajax success anonymous function scope。
这会将挑战更改为您的客户端(浏览器)必须准备好"准备好"状态标志,可以向用户指示他们应该等待并阻止重叠呼叫。我个人喜欢改变提交按钮文本/颜色以供用户反馈。在进行AJAX调用之前,您还应检查状态标志以确保没有待处理的操作。