MVC3 アプリケーションがあります。を介して別のアクション Action2 にリダイレクトするアクション Action1 がありRedirectToAction
ます。これにより、HTTP 302 応答が返されます。Action1 への後続の呼び出しがサーバーにヒットしないため、応答はどこかにキャッシュされているように見えます。私は次のことを試しました:
- Web.config で出力キャッシュを無効に設定します。
- ブラウザ (Chrome および IE9) のキャッシュをクリアしました。
- Action1 のリクエストに乱数を追加しました。
- Action1 の動作を変更して、キャッシュが停止するかどうかを確認しました。
- ローカルホストのリクエストがルーターなどにキャッシュされていると考えて、ネットワーク接続を無効にしました。
私が何をしても、まだ存在するキャッシュの層がどこかにあるようです。ラップトップでローカルに IIS 7.5 のアプリケーションを実行しています。同じマシンからアクセスしています。私の最後の唯一の考えは、IIS がリダイレクトをどこかにキャッシュしているということですが、それがどこにあるのかわかりません。言及する価値があるかもしれない他の唯一のことは、その場でフォームを作成し、jQuery を使用して送信することにより、リクエストを投稿していることです。
Action1 をリクエストしたときのリクエスト ヘッダーは次のとおりです。
POST /Test/Action1
Host: localhost
Connection: keep-alive
Content-Length: 36
Cache-Control: max-age=0
Origin: http://localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost/Test
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: CartID=2637139; ASP.NET_SessionId=njto1i55dsbfsib5x2vpin55; siteuidut=6750fc9eda6c479db11ce10328a595ec; UserID=1; .ASPXAUTH=0:6172Tz9ggmhlHKcOJE+Jmg==
応答ヘッダーは次のとおりです。
HTTP/1.1 302 Found
Cache-Control: private, s-maxage=0
Content-Type: text/html; charset=utf-8
Location: /Test/Action2
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 20 Jul 2012 00:42:59 GMT
Content-Length: 140