0

ステータスを div に返す (パスが正しくない場合) か、メイン ページにリダイレクトする単純なポップアップ ログインがあります。

リクエストを処理するためのコードは次のとおりです。

$.ajax({
     type: "POST",
     url: "login.html",
     cache: false,
     data: formData
     success: function(data){
        var $response=$(data);
        $('#response').text($response.find('#response').text());
        if($('#response').text().length<=0)
        {
            window.location="main.html";
        }
     }
 });

リクエストの処理にSpring MVCを使用しています。Login.html は文字列を返します (パスが正しくありません)。しかし、Spring からリダイレクトを取得しても何も起こりません。そこで、リダイレクト用のクライアント コードを一時的に追加しました。

このアプローチは正しいですか?両方の方法で成功する原因(間違ったパスワードまたは正しいパスワード)

4

1 に答える 1

0

Spring からリダイレクトするとき、ページがどのようにリダイレクトされるかを確認してください。ajax 送信を行っているためです。ルールは簡単です.. ajax を実行する場合..ブラウザの通常の送信は干渉しません..通常の送信がある場合、サーバーは HTTP コードを 302 として送信し、ページは新しい場所にリダイレクトされます (新しいページが開くことを意味します)。

このアプローチを試すことができます:

$.ajax({
     type: "POST",
     url: "login.html",
     cache: false,
     data: formData
     success: function(data){
       document.open();
       document.write(data);//home page from server after authentication..dont forget to add redirect logic at spring
       document.close();
     }
 });

認証にSpring-securityを使用していないことを願っています..したがって、独自のフィルターアプローチをたくさん書く必要があるかもしれません。また、ajax の代わりに、認証からの通常の送信アプローチを使用してみてください..ajax では、通常の認証プロセスで簡単に処理される独自のセッション ID でブラウザー Cookie を設定する必要がある場合があるため..ありがとう

于 2013-02-08T11:25:14.213 に答える