【发布时间】:2020-11-10 19:02:57
【问题描述】:
我有一个小型嵌入式网站,用户可以使用 摘要式身份验证通过输入表单和 ajax 请求向我的 HTTP 服务器发送一些数据。我的 HTTP 服务器限制为 1 个用于 HTTP 请求的 TCP 连接。如果请求完成,另一个页面会加载location.replace(newSite)。
问题是,在第一个 ajax 请求之后,Firefox 想要创建一个到服务器的新 TCP 连接,这是不可能的,因此它失败了(我可以在 Wireshark 中看到它)。在 Chrome 中一切正常,因为它使用相同的 TCP 连接。
如果加载站点的 TCP 连接尚未关闭,则在第一个 ajax 请求时也会出现此问题。
有没有办法通过javascript告诉Firefox它应该在使用后立即关闭每个连接,或者(更好地)对任何正在进行的请求使用相同的TCP连接?
我已经为 ajax 请求尝试了"Connection":"close",但没有任何改变。此外,我无法处理直接输入到地址栏的location.replace 请求或 URL 请求。
谢谢你的帮助。
ajax 请求:
$.ajax({
url: "/res",
dataType: 'text',
cache: false,
async: true,
data: form_data,
contentType: false,
processData: false,
timeout: 300,
type: 'post',
headers: { 'Connection':'close' },
username: sUser,
password: sPass,
})
.done(function(data, textStatus, jqXHR){
window.location.replace("/site.html");
})
.fail(function( jqXHR, textStatus, errorThrown ){
alert("fail");
})
【问题讨论】:
标签: javascript jquery ajax firefox tcp