ユーザーがスクリプトまたは自動化を使用してフォームに入力しようとすると、アプリケーション コントローラーで次のエラーが発生します。
"ActionController::InvalidAuthenticityToken"
これは、有効な本物のユーザーがフォームに入力し、ブラウザを閉じ、ブラウザの履歴からページを再度開いてフォームを送信したときに発生します。
この場合、例外通知を使用して例外を送信したくありません。また、更新された要求メッセージでモーダルを表示したいと考えています。
したがって、 application_controllerを次のように変更しました
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
rescue_from ActionController::InvalidAuthenticityToken, with: :handle_csrf_error
def handle_csrf_error(exception)
respond_to do |format|
format.js {
render 'invalid_requests/error'
}
format.html {
render text: I18n.t('errors.messages.csrf_error')
}
end
ExceptionNotifier.notify_exception(exception)
end
end
これをあらゆる種類のリクエストで機能させたいと考えています。
html & js リクエストのレスポンスを追加しました
しかし、json リクエストの処理方法がわかりません。
PS > json リクエストが web アプリケーションから送信され、より多くのケースをロードし、場合によっては例外が発生するため、これを処理したいと考えています。
Rails のバージョンは 4.2 です