私はjQueryを初めて使用し、現在維持されているHTTP 1.1接続ではなく、接続を閉じたプレーンなHTTP 1.0を使用してPOSTリクエストを作成したいと考えています。
以下は、投稿を行うボタンの 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
Connection close ヘッダーは「無視」されており、接続はサーバーに対して開いたままであるため、最後の行testVal=data
はページをリロードしたときにのみ通過します (これは、ブラウザーによって接続が閉じられるためだと思います)。私が見逃しているのは非常に単純で愚かなものだと思いますが、ドキュメントには何も表示されません。