状況は次のとおりです。
リソースのリストのリクエストに応答するWebアプリケーションがあります。
/items
これは最初、そのパスに移動することにより、Webブラウザによって直接要求されます。ブラウザは「text/html」を含む標準の「Accept」ヘッダーを使用し、アプリケーションはこれに気づき、アイテムリストのHTMLコンテンツを返します。
返されるHTMLには、JavaScript(jQuery)が含まれています。JavaScript(jQuery)は、実際のデータを取得するためにajaxリクエストを実行します。
/items
今回のみ、「Accept」ヘッダーが明示的に「application/json」に設定されます。繰り返しますが、私のアプリケーションはこれに気づき、JSONがリクエストに正しく返され、データがページに挿入され、すべてが満足のいくものになります。
ここに問題があります:ユーザーは別のページに移動し、後で戻るボタンを押します。次に、ファイルを保存するように求められます。これは、アイテムリストのJSONデータであることがわかります。
これまでのところ、これがGoogleChromeとFirefox3.5の両方で発生することを確認しました。
ここでは、2つの可能なタイプの回答があります。
どうすれば問題を解決できますか。キャッシュコントロールヘッダーの魔法の組み合わせ、またはブラウザがここで正しいことをする原因となる他のブードゥーはありますか?
私がここでひどく間違ったことをしていると思うなら、どうすればいいですか?私は正確さを求めていますが、柔軟性を犠牲にしないようにもしています。
それが役立つ場合、アプリケーションはRestlet2.0m4を使用するJAX-RSWebアプリケーションです。役立つ場合は、サンプルの要求/応答ヘッダーを提供できますが、問題は完全に再現可能であると思います。