jQuery добавляет токен CSRF ко всем данным запросов $ .post ().
Я работаю над приложением Laravel 5, в котором по умолчанию включена защита CSRF для всех запросов POST. Мне нравится эта дополнительная безопасность, поэтому я пытаюсь работать с ней.
Делая простой$.post()
запрос я получил'Illuminate\Session\TokenMismatchException'
ошибка, потому что требуемая форма ввода_token
отсутствовал в данных POST. Вот пример запроса $ .post:
var userID = $("#userID").val();
$.post('/admin/users/delete-user', {id:userID}, function() {
// User deleted
});
Я храню токен CSRF в виде мета-поля в заголовке и могу легко получить к нему доступ, используя:
var csrf_token = $('meta[name="csrf-token"]').attr('content');
Можно ли добавить это к данным JSON на всех исходящих$.post()
Запросы? Я пытался использовать заголовки, но Laravel, похоже, не узнал их -
var csrf_token = $('meta[name="csrf-token"]').attr('content');
alert(csrf_token);
$.ajaxPrefilter(function(options, originalOptions, jqXHR){
if (options['type'].toLowerCase() === "post") {
jqXHR.setRequestHeader('X-CSRFToken', csrf_token);
}
});