0

だから私は、他の人が以前につまずいた(そして解決した)ことを願っている興味深い問題を抱えています。

この特定のアプリケーションのユーザー向けに「パスワードの変更」オプションを設定しました。ユーザーがパスワードを忘れた場合、パスワードの変更を要求できます。簡単な「パスワードの変更」画面に誘導するリンクにハッシュが埋め込まれたメールを送信します。 ここに画像の説明を入力

ここに画像の説明を入力

ユーザーが更新ボタンをクリックすると、ajax を介して適切なコントローラーアクションが呼び出され、サーバーはパスワードの更新、トークンの削除、ユーザーのリダイレクトなどのさまざまなことを処理します。

更新ボタンに関連付けられた ajax を次に示します。

updatePassword: function() {
        $.ajax({
            url: '/side-panel/update-password',
            dataType: 'json',
            type: 'post',
            data: {
                token: $('input[name=token]').val(),
                id: $('input[name=id]').val(),
                new_password: $('input[name=new-password]').val()
            },
            beforeSend: function() {
                kts.show_loader('show');
            },
            success: function(data) {
                kts.show_loader('hide');
                console.log(data);
            }
        });
    }

ユーザーが初めてボタンをクリックしたとき - コンソールには次のように表示されます。

ここに画像の説明を入力

以下の URL と左上のネットワーク エントリに注目してください。

"http://code.kenstowell.local/".

適切なアクションを呼び出しますが、302 を返し、サイトのベース URL にリダイレクトします。

ユーザーが 2 回目にボタンをクリックすると、コントローラ アクションが必要に応じて呼び出されます。

ここに画像の説明を入力

ここの URL に注意してください。"http://code.kenstowell.local/index/update-password"

ここでの本当の問題は、最初の呼び出し/ボタン クリックで、サーバー側のコードが実際に処理されるのに、XHR オブジェクトが失敗を返すことです。

情報過多でしたら申し訳ありません。さらにコード/サンプルを提供する必要がある場合はお知らせください。どんな助けでも感謝します。

ケン

4

1 に答える 1

0

私はこの小さな宝石に出くわしました:

JavaScript で 302 FOUND をキャッチする

どうやら、ajax はサーバー側のリダイレクトをうまく処理できません。

于 2012-06-25T19:12:42.547 に答える