1

JavaScript を使用して、ブラウザー (FireFox と Chrome) 間の認証キャッシュをクリアすることに遭遇しました。

この投稿リンクからの参照により、XMLHttpRequest を使用して非 IE ブラウザのキャッシュをクリアする部分が私の状況では機能しません。

別の方法を探していましたが、何か提案はありますか? 助けてください

よろしくお願いします。

4

2 に答える 2

1

私は同様の解決策を探していて、これを行うTrac(問題管理システム)のパッチに出くわしました。

私はコードを調べました(そして私は疲れているので、すべてを説明しているわけではありません)。基本的に、ログインページに対して無効なクレデンシャルが保証されたAJAX呼び出しを行う必要があります。ブラウザは401を取得し、次にそこに行くときに正しいクレデンシャルを要求する必要があることを認識します。リダイレクトの代わりにAJAXを使用して、誤ったクレデンシャルを指定でき、ブラウザーがダイアログをポップアップしないようにします。

パッチ(http://trac-hacks.org/wiki/TrueHttpLogoutPatch)ページでは、非常に初歩的なAJAXを使用しています。jQueryやPrototypeなどのようなより良いものがおそらくより良いでしょうが、これは仕事を成し遂げます。

于 2012-06-07T11:06:06.770 に答える
1

提供された資格情報のブラウザーの処理に関する正確なルール - Javascript から提供されたときにそれらが保存されるかどうか、および正しいまたは間違った試行が認証キャッシュを上書きするかどうかは、どこにも標準化されていません。

さらに、開発者は、「パスワードを保存しますか?」など、通常はユーザーの手動操作が必要なストレージの無人操作を可能にするものを検討する傾向があります。何らかの理由で過去に機能していたとしても、安全ではなく、すぐに穴を塞ぐためです。

したがって、それに依存せず、スクリプトからこのキャッシュをクリア/無効にしようとしないことをお勧めします。

于 2012-06-07T11:03:00.927 に答える