当使用axios时,Laravel是表单中需要的csrf_field()

时间:2018-03-19 13:31:49

标签: laravel csrf axios

当我使用Axios对该表单发出ajax发布请求时,我想知道是否需要在{{ csrf_field() }}中包含<form>

在我的bootstrap中,我已经设置了某种类似的csrf保护:

//Add headers to axios
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
let token = document.head.querySelector('meta[name="csrf-token"]');

if (token) {
  window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
  console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}

// html

<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">

1 个答案:

答案 0 :(得分:1)

不,当您将CRSF令牌添加到axios标头时,不需要在表单中包含crsf_field。它附加在所有标题上,因为它已经添加到axios默认标题中。