0
だから私はこのような工夫とのRails 4.2アプリケーションのセットアップにAJAX呼び出しをやってる:データキーなしでAJAXコールでデータを渡すことはできますか?
$.ajax
url: '/some_ajax_call',
type: 'POST',
dataType: "json",
beforeSend: (xhr) ->
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))
data: { yo: "yes" },
success: (response) ->
console.log('hello')
私はこのような構造Railsのコントローラ内のparamsハッシュで終わる:
{ "data" => { "yo" => "yes" } } #params
私が代わりに次のparamsハッシュで(基本的にはマイナスのparamsデータキー)
{ "yo" => "yes" } #params
あなた自身でCSRFのヘッダをエンコードするべきではありません。それを行うにはRailsヘルパーを使います。 beforeSend:$ .rails.CSRFProtectionを追加すると、CSRFの問題が修正されます。この回答を参照してください:[http://stackoverflow.com/questions/37337691/rails-post-cant-verify-csrf-token-a uthenticity/37337966#37337966](http://stackoverflow.com/questions/37337691/) rails-post-cant-verify-csrf-token-a uthenticity/37337966#37337966) –
@MichaelGaskill '$ .rails.CSRFProtection'はどこから来たのですか?これはjQueryの一部ではありません。 – Nona
Railsによって提供される控えめなjavascript(UJS)ヘルパーです。 Railsソースで探しているなら、 'rails.js'で見つけることができます。 –