Существует проблема, что ваш токен csrf не передается вместе с заголовком, поэтому я внес некоторые изменения в ваш скрипт, см. Код ниже. Вам не нужно добавлять каждое поле отдельно, всю форму можно передать с новыми FormData (this) событие on ('submit') запускается.
$(document).ready(function() {
$('form').on('submit', function(e) {
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name=""csrf-token""]').attr('content')
}
});
var form = $(this).closest('form');
var fd = new FormData(this);
/* fd.append('national', $('#national')[0].files[0]);
fd.append('_token',$(document).find('input[name=""_token""]').val()) */
$.ajax({
beforeSend: function() {
$('.progress-bar').text('0%');
$('.progress-bar').css('width', '0%');
},
UploadProgress: function(event, position, total, percentComplete) {
$('.progress-bar').text(percentComplete + '%');
$('.progress-bar').css('width', percentComplete + '%');
},
url: form.attr('action'),
data: fd,
type: 'POST',
processData: false,
contentType: false,
success: function(data) {
if (data.error) {
$('.progress-bar').text('0%');
$('.progress-bar').css('width', '0%');
}
if (data.success) {
$('.progress-bar').text('Uploaded successfully.');
$('.progress-bar').css('width', '100%');
}
}
});
});
});
</script>