LoginSignup
2
0

More than 1 year has passed since last update.

Railsでajax通信するときにCSRFトークンを付加する方法をchatGPTに聞いてみたらすぐ解決した。

Posted at

railsでajaxを使って通信するときに、CSRFトークンを付加するにはどうすれば良い?

Railsでは、セキュリティ保護の一環として、CSRF(クロスサイトリクエストフォージェリ)攻撃を防ぐために、フォームを送信する際にCSRFトークンを必要とするようになっています。同様に、Ajaxを使用してデータを送信する場合にも、CSRFトークンを付加する必要があります。

以下の手順に従って、RailsでAjax通信にCSRFトークンを付加することができます。

1、app/views/layouts/application.html.erbファイルに下記のようにcsrf_meta_tagsを追加します。

<%= csrf_meta_tags %>

2、Ajax通信を行うJavaScriptファイル内で、app/views/layouts/application.html.erbからmeta[name="csrf-token"]を取得します。

var csrf_token = $('meta[name="csrf-token"]').attr('content');

3、Ajaxリクエストを送信する際に、X-CSRF-TokenヘッダーにCSRFトークンを設定します。

$.ajax({
  url: '/your_ajax_endpoint',
  type: 'POST',
  beforeSend: function(xhr) {
    xhr.setRequestHeader('X-CSRF-Token', csrf_token);
  },
  data: { foo: 'bar' },
  success: function(response) {
    console.log(response);
  }
});

このようにして、Ajax通信に必要なCSRFトークンをRailsアプリケーションに付加することができます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0