Проблема в том, что когда вы нажимаете i
в button
, на это указывает e.target
.В свою очередь, он не имеет атрибута id
, поэтому вы передаете пустое свойство логике на стороне сервера, что приводит к ошибке 500.
Чтобы исправить это, измените e.target
на this
(или e.currentTarget
), поскольку jQuery гарантирует, что он будет выбранным вами элементом, а не дочерним элементом, вызвавшим событие.Попробуйте это:
$('.like').on('click', function(event) {
var imageId = this.id;
console.log(imageId);
// your AJAX here...
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="submit-btn like" id="{{ $image->id }}">
<i class="far fa-thumbs-up">THUMBS UP</i> Like
</button>
Обратите внимание, что в этом примере при нажатии кнопки ссылка на элемент одинакова.
Кроме того, если отсутствиесвойство в запросе вызвало ошибку 500. Я бы предложил применить более строгую проверку на стороне вашего сервера.