首页 > 解决方案 > Laravel 5.8 Posting Likes with AJAX call给了我内部服务器错误500

问题描述

我正在尝试为我的 Laravel 网络应用程序实现一个喜欢系统。这是一个食谱应用程序。为了构建点赞系统,我使用了 AJAX(我之前的点赞系统只是通过 Laravel 使用多对多,但每次点赞都需要加载页面)。我遇到的问题是每当我点击“赞”按钮时都会出现内部服务器错误 500,我不知道为什么。我已经搞砸了几个小时,却什么也得不到。

AJAX

// Likes AJAX
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

var recipeId = 0;

$('.like').on('click', function(event){
    event.preventDefault();
    recipeId = event.target.parentNode.parentNode.dataset['recipeId'];
    var isLike = event.target.previousElementSibling == null;

$.ajax({
    method: 'POST',
    url: urlLike,
    data: {isLike: isLike, recipeId: recipeId},
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
})
.done(function(){
    event.target.innerText = isLike ? event.target.innerText == 'Like' ? 'You like this' : 'Like':
    event.target.innerText == 'Unlike' ? 'You like this' : 'Unlike';

    if(isLike){
        event.taget.innerText = 'Unlike';
    } else {
        event.taget.innerText = 'Like';
    }
});
});

刀片/视图

{{-- Likes --}}
@if (Auth::check())
    <div>
        <button class="like" data-recipeId="{{$recipe->id}}">Like!</button>
        <span id="likes-count-{{$recipe->id}}"></span>
    </div>
@else
    <div>
        <a href="{{route('login')}}">
            <button>Like It!</button>
        </a>
        <a href="{{route('login')}}">
            <button>Unlike It!</button>
        </a>
    </div>
@endif

以下内容包含在我的布局文件中。

<script>
    var urlLike = '{{ route('like') }}'
</script>  
<script src="/js/custom.js"></script>
<meta name="csrf-token" content="{{ csrf_token() }}">

有谁知道我应该从哪里开始搜索错误以及我应该如何纠正它?如果您需要更多代码,例如我的控制器或模型,请告诉我。

标签: phpajaxlaravel

解决方案


推荐阅读