我是新来的jQuery,并希望使用普通HTTP 1.0连接关闭来发出POST请求,而不是当前保持活动状态的HTTP 1.1连接。如何强制JQuery发出HTTP 1.0请求并关闭连接
下面是执行该帖子的按钮的onClick处理程序。
$("#certGenBtn").click(function(event) {
$.ajax({
type: "POST",
url: "http://localhost:9099/",
data: { testVal : "data" },
success: function(data) {
alert("whoops");
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Connection", "close");
}
});
});
原始输出倾倒在服务器端如下:
POST/HTTP/1.1
Host: localhost:9099
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: */*
Accept-Language: en-ZA,en-GB;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost/
Content-Length: 12
Origin: http://localhost
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
testVal=data
连接关闭头被“忽略”和连接保持开放的服务器,以便最后一行testVal=data
只通过一次我重新加载页面(我认为这是因为连接然后由浏览器关闭)。我认为这是非常简单和/或愚蠢的,我失踪,但在文档中看不到任何东西。
非常感谢你!我 对我身边相同的结果,有没有办法迫使HTTP 1.0而不是HTTP 1.1吗? AFAIK'连接:keep-alive'是一个HTTP 1.1特有的,它不在HTTP 1.0中。 – twocents
“用户代理”是指您的浏览器。我认为你必须找出一种方法来配置你的浏览器使用HTTP 1.0--但是,除非js只是个人使用,否则有什么意义。我环顾了Firefox 21.0,并且没有看到设置。 – 7stud
我不是指用户代理部分,服务器接收到的响应的第一行是'POST/HTTP/1.1',表示浏览器使用HTTP 1.1协议而不是HTTP 1.0发出请求。如果我只能强制客户端使用HTTP 1.0而不是HTTP 1。1,那么保持活跃的整个概念就会消失(Connection头部不在HTTP 1.0规范中)[link](http://www.w3.org/Protocols/HTTP/1.0/draft-ietf-http-spec。 html) – twocents