LoginSignup
29
28

More than 5 years have passed since last update.

railsでaxiosを使用してpostする

Posted at

railsでajax通信しようとすると、大概Can't verify CSRF token authenticity
で怒られると思います。

axiosでいきなりpostすると、こんなログが発行されいると思います。

セキュリティ上、変なデータ送信されないようにしているので、仕方ないですね。

CSRF tokenの発行場所

では、普段のjqueryではなぜ意識せずに使用できていたのか?

それは下記のようにmeta nameに設定しているからです。

<meta name="csrf-token" content="F6dek0xG3Kl/8fc8wlAdAdwWNgBhJ/O8da3ziVQG5y9yOxO7QUS8QVbro9+pLYF9/+qkHXQtrSwIcUteffGd1A==" />

これを$.ajaxを使用するときは勝手に設定してくれていたわけです。

それが外れたので、エラーになってます。

ということは、きちんと設定すれば行けます。

設定方法

axios.defaults.headers['X-CSRF-TOKEN'] = $('meta[name=csrf-token]').attr('content')

これを加えることで、headersに値を設定することができます。

参考

29
28
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
29
28