Как автоматически добавить 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);
}
});