#laravel #laravel-5
#ларавель #ларавель-5
Вопрос:
Я использую этот код для отправки данных через ajax в laravel
$('#submit').submit(function (e) { e.preventDefault(); let formData = new FormData(this); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.ajax({ xhr: function() { var xhr = new window.XMLHttpRequest(); xhr.upload.addEventListener("progress", function(evt) { if (evt.lengthComputable) { var percentComplete = evt.loaded / evt.total; percentComplete = parseInt(percentComplete * 100); if (percentComplete === 100) { } } }, false); return xhr; }, url: $(this).attr('action'), type: "POST", data: formData, dataType:'JSON', contentType:false, cache: false, processData: false,
но я получаю несоответствие токенов csrf, когда загружаю свой код на живой сервер.
Любое решение высоко ценится, спасибо
Ответ №1:
Я вижу, что вы извлекаете токен из метатега HTML-страницы, убедитесь, что ваша HTML-страница не кэшируется промежуточным/браузером между обращениями (попробуйте открыть в двух разных браузерах и проверить токен, обновив его с помощью f5 и принудительной перезагрузки тоже).
Еще одной распространенной проблемой является одновременная загрузка нескольких HTML-страниц (фреймов? возможно, файл 404, который возвращает вашу страницу по умолчанию, обновляя маркер для вашей сессии). Это трудно найти, проверьте вкладку «Сеть» в инструментах разработки браузера и проверьте каждый ответ.
Я не думаю, что это так, но иногда это имеет значение X-CSRF-Token
, если прокси «очищает заголовки, не внесенные в белый список».