だから私は、他の人が以前につまずいた(そして解決した)ことを願っている興味深い問題を抱えています。
この特定のアプリケーションのユーザー向けに「パスワードの変更」オプションを設定しました。ユーザーがパスワードを忘れた場合、パスワードの変更を要求できます。簡単な「パスワードの変更」画面に誘導するリンクにハッシュが埋め込まれたメールを送信します。
ユーザーが更新ボタンをクリックすると、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 オブジェクトが失敗を返すことです。
情報過多でしたら申し訳ありません。さらにコード/サンプルを提供する必要がある場合はお知らせください。どんな助けでも感謝します。
ケン