昨日、私はこの質問をし、いくつかの非常に良いフィードバックを得ました. 私の状況を要約すると、キャッシュを禁止する HTTP 応答ヘッダーを Spring MVC Web アプリ (予期せず継承したプロジェクト) に追加しようとしています。
したがって、回答者(そして最終的には@Bozho)の提案に従って、これをSpring構成ファイルに追加しました:
<mvc:annotation-driven/>
<mvc:interceptors>
<bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor">
<property name="cacheSeconds" value="-1"/>
<property name="useExpiresHeader" value="true"/>
<property name="useCacheControlHeader" value="true"/>
<property name="useCacheControlNoStore" value="true"/>
</bean>
</mvc:interceptors>
アプリをローカルで再構築し、Firefox で開いたので、Firebug を使用して、HTTP 応答で返されるヘッダーをテストできました。
残念なことに、当初の開発者は、実際の JSP ページごとに約 40 回以上の AJAX 呼び出しを行う「1 ページの Web アプリ」にすることを目指していました。
これらの 40 以上の AJAX リクエストのいずれにも、探しているヘッダーが表示されないだけでなく、JSP ページごとに複数の AJAX リクエストがあるため、Spring インターセプターが認識しないことが懸念されます。ヘッダーを追加するために AJAX が呼び出すもの。Spring が私の構成を気に入らないことを示すエラー メッセージやログ出力は表示されません。Cache-Control
Expires
- これを間違って構成したのでしょうか。そうでない場合、これが機能しない理由は何ですか (インターセプターが起動しないのはなぜですか)?
- 複数の AJAX 呼び出しにより、Spring MVC リクエストインターセプターが奇妙な動作をしますか?
ここで助けてくれてありがとう!