キャッシュ マニフェストを含む HTML5/Javascript (サーバー上の PHP/MySQL) アプリがあり、Firefox を除くほとんどすべてのモバイルおよびデスクトップ ブラウザーで問題なく動作します。
キャッシュ マニフェストを削除すると、Firefox で正常に動作します。そのため、Firefox のキャッシュ マニフェストがおかしいのですが、私にはわかりません。ファイルが Cache-Control: no-store, no-cache ヘッダーを送信しても、キャッシュからファイルをロードしています。
このファイルは、LinkedIn アクセス トークンを取得するための OAuth ダンスを処理し、次の手順に従います。
- アプリは window.location.replace('file.php') を使用して Javascript 経由でファイルを呼び出します
- file.php がロードされ、file.php?param=initiate にリダイレクトされます
- file.php?param=initiate が読み込まれ、LinkedIn からリクエスト トークンを取得し、LinkedIn 認証ページにリダイレクトされ、次に file.php?param=initiate&otherparameters にリダイレクトされます
- file.php?param=initiate&otherparameters が読み込まれ、otherparameters を使用して LinkedIn からアクセス トークンが取得され、アクセスできるようになったためアプリが再読み込みされます。
ただし、Firefox (Windows 7 の 16.0.2) では、次のようになります。
- アプリは window.location.replace('file.php') を使用して Javascript 経由でファイルを呼び出します
- file.php が読み込まれ、file.php?param=initiate にリダイレクトされます (FireBug は Status 302 Found を示し、応答ヘッダーは場所 /file.php?param=initiate を示します)。
- file.php?param=initiate をロードし、LinkedIn から要求トークンを取得しますが、LinkedIn 認証ページにリダイレクトしません: 404 ページが表示されます (FireBug は Status 302 Found を示し、応答ヘッダーは場所 https:linkedin.com/ を示します)。認証リンクが表示されますが、Firefox は LinkedIn ページに移動せず、file.php?param=initiate に対して別の GET 要求を行い、キャッシュからそれを読み込みます: ステータス 200 OK (BF キャッシュ) と 404 ページを表示します)。
file.php はキャッシュ マニフェストにありません。
基本的に、LinkedIn 承認ページに移動する必要がある手順 3 の応答ヘッダーの Location には移動しませんが、理由がわかりません。
これを修正する方法についてのアイデアはありますか?
この問題を再現したい場合は、テスト イベントへのリンクを参照してください。LinkedIn 接続要求を送信して、Firebug を監視してみてください。このイベントのすべての LinkedIn プロフィール (私のものを除く) はダミー プロフィールであるため、ランダムな見知らぬ人に LinkedIn 接続要求を送信しても心配する必要はありません。アクティベーションリンクを取得するには、最初に電子メールで登録する必要がありますが、必要に応じて使い捨ての電子メールアドレスを使用できます.
私が試したいくつかのこと:
- キャッシュ マニフェストがありません: これで解決しますが、オフライン機能が必要です
- no-store、no-cache、must-ravalidate、過去の有効期限などのさまざまな順列でヘッダーを送信します。
- キャッシュ マニフェストのエントリ数を減らす
- SETTINGS:prefer-online、NETWORK:*、NETWORK:https://*などのさまざまな組み合わせ。