問題タブ [ruby-on-rails-5.1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - Rails 5.1 post ajax receive http 405 - メソッドはテスト環境でのみ許可されていません
私はこのシナリオを作成しようとしています:
フローは次のとおりです。
- ユーザーは入力に名前を入力します。
- 送信ボタンをクリックします。
- スイート アラートが成功メッセージと共に表示されます。
- スイートアラート内の「OK」をクリックします。
- jQuery で新しい行が作成され、html テーブルに追加されます。
このフローを担当する JS コードは次のとおりです。
をクリックした後submit button
、カピバラは甘いアラートを見つけることができません。使用save_and_open_screenshot
してみましたが、スイートアラートが画面に表示されません。byebug
コントローラーでも試しましたが、呼び出されません。
を使用して:selenium_chrome
います。
助けてくれてありがとう!
編集 1
@ThomasWalpole のいくつかのコメントの後、<%= csrf_meta_tag %>
対応するタグをレンダリングしない理由を見つけようとしました。かどうかを確認するために呼び出すだけであることがわかりました。テスト環境で動かしているので、. テストを変更して再実行しました。csrf メタ タグはレンダリングされましたが、まだ http ステータス 405 - ajax 呼び出し後にメソッドが許可されていません。csrf_meta_tag
protect_against_forgery?
config.action_controller.allow_forgery_protection
true
config.action_controller.allow_forgery_protection
false
true
編集 2
@ThomasWalpoleが要求した私のルート:
編集 3
私のカピバラの設定: