我是新來的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