Как автоматически добавить X-CSRF-TOKEN с помощью jQuery ajax-запроса в Laravel

Как я могу добавить токен csrf с моими ajax-запросами (GET или POST) моего приложения Laravel автоматически, не добавляя его вручную к каждому запросу.

Мой запрос ajax

   $.ajax({
      type:'post',
      url: "/email/unique",
      data: { "_token": "{{ csrf_token() }}", "email": email }
      success: function(data) {
        console.log(data);
      }
   });

1 ответ

Решение

В Laravel значение метатега csrf-token регистрируется по умолчанию в HTTP-библиотеке Axios. Но если вы не используете эту библиотеку, вам придется вручную настроить это поведение для вашего приложения.

Для этого сохраните токен в метатеге HTML

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

Затем, после создания метатега, вы можете указать библиотеке jQuery автоматически добавлять токен во все заголовки запроса.

Для этого добавьте код в resources/js/bootstrap.js файл для Laravel 5.7 а также resources/assets/js/bootstrap.js за Laravel 5.6 и ниже версии.

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

Ajax без токена csrf, поскольку он будет добавлен автоматически

$.ajax({
      type:'post',
      url: "/email/unique",
      data: { "email": email }
      success: function(data) {
        console.log(data);
    }
 }); 
Другие вопросы по тегам