ошибка несоответствия csrf-токенов в laravel на сервере

#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 , если прокси «очищает заголовки, не внесенные в белый список».