2016-05-20 1 views
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 
+1

あなた自身で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) –

+0

@MichaelGaskill '$ .rails.CSRFProtection'はどこから来たのですか?これはjQueryの一部ではありません。 – Nona

+0

Railsによって提供される控えめなjavascript(UJS)ヘルパーです。 Railsソースで探しているなら、 'rails.js'で見つけることができます。 –

答えて

1

あなたはパーを渡すことができますが終わるように、AJAX呼び出しを行う方法はありますams in the url:

url: '/some_ajax_call?yo=yes' 
関連する問題