0

そのため、ajaxを介してzend auth clear ID関数を呼び出し、ajaxがtrueを返した場合(つまり、IDがクリアされた場合)、location.reload()を介してブラウザーをリロードします。

そして通常起こることはページが以下を持っているということです:

if ($this->auth->hasIdentity()) {

     echo "Welcome";

}

if (!$this->auth->hasIdentity()) {

     echo "some login form";

}

しかし、ページはブラウザによってキャッシュされるため、ajax(IDをクリアする)を介してログアウトスクリプトを呼び出してページをリロードしても、ページが終了したと見なされるため、ページにはウェルカム画面が表示されます。変更されていないため、リロード時にログインフォームではなくウェルカム画面を含むキャッシュが表示されます......

キャッシュを手動でクリアするか、jqueryを使用して何らかの方法でキャッシュをクリアし、リロード時にキャッシュをロードしないようにする方法はありますか?

4

2 に答える 2

0

私は間違っているかもしれませんが、それは一般的にキャッシュの問題ではないでしょうか?その特定のページをキャッシュしないようにブラウザに指示すると、問題は解決するはずです。

于 2010-11-22T00:30:22.220 に答える
0

ログアウト機能をAjaxにしないことをお勧めします。/ authentication /logout/のような通常のリンクにするだけです。

そのアクションはこれを行う必要があります:

public function logoutAction() {
        $auth = Zend_Auth::getInstance();
        $auth->clearIdentity();
        $this->_redirect('/authentication/login');
}

とにかく、それは私にとってはうまくいきます。

これは理想的な答えではないかもしれませんが、ログアウトリンクをajaxにする必要性に挑戦します。

于 2010-11-22T07:41:16.237 に答える