所以我这样做一个AJAX调用:
$.ajax({
url: 'download',
type: 'POST',
data: JSON.stringify(postData),
cache: false,
contentType: 'application/json;charset=UTF-8'
})
.done(function(){
console.log('This was a success')
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log('This was a fail')
});
}
如果进程仍在运行,无论60秒后它将返回200。
我不认为它可能是服务器端问题,因为它按预期工作。是否有任何浏览器或AJAX相关的超时我应该考虑?
答案 0 :(得分:0)
你可以增加超时但不是一个好主意,最好改善服务器端的逻辑
$.ajax({
url: 'download',
type: 'POST',
data: JSON.stringify(postData),
cache: false,
contentType: 'application/json;charset=UTF-8',
timeout: 60000 // sets timeout to 60 seconds
})
.done(function(){
console.log('This was a success')
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log('This was a fail')
});
}
答案 1 :(得分:0)
根据AJAX文档,您可以添加超时属性:
$.ajax({
url: 'download',
type: 'POST',
data: JSON.stringify(postData),
cache: false,
contentType: 'application/json;charset=UTF-8',
timeout: 0,
})
.done(function(){
console.log('This was a success')
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log('This was a fail')
});
}
timeout = 0表示没有超时限制
答案 2 :(得分:0)
原来这是一个浏览器问题。
Firefox 60将在60秒后超时并返回200个成功代码,即使服务器进程仍在运行。