javascript - 尝试使用 Ajax 实现类似功能后出现内部服务器错误 500

标签 javascript php jquery ajax laravel

我目前正在尝试使我的点赞功能使用 AJAX 请求,以便每当用户点赞图像时页面就不会刷新,但是,每当我单击div 应该触发 AJAX 请求。

遗憾的是,我不知道如何解决 500 内部服务器错误。

这是用户喜欢图像的 View 中的相关代码:

<div class="submit-btn like" id='{{ $image->id }}'>Like</div>

<script>
    var token = '{{ Session::token() }}';
    var urlLike = '{{ route('likeArtwork') }}'
</script>

这是我的 JavaScript:

$('.like').on('click', function(event) {
    var imageId = event.target.id;

    $.ajax({
        method: 'POST',
        url: urlLike,
        data: {
            imageId: imageId,
            _token: token
        }
    }).done(function(response) {

    });
});

我的发帖路线:

Route::post('/artwork/like', 'LikeController@likeArtwork')->name('likeArtwork');

最后是我的 likeArtwork() 函数:

public function likeArtwork(){
    $id = $request['imageId'];
    $user = Auth::user();
    $liked = Like::where('user_id', $user->id)->where('image_id', $id)->first();

    if ($liked) {
        $liked->delete();
    } else {
        $like = new Like();
        $like->image_id = $id;
        $like->user_id = $user->id;

        $like->save();
    }

    return redirect()->back();
}

最佳答案

public function likeArtwork(Request $request){
    $id = $request->input('imageId');
    $user = Auth::user();
    $liked = Like::where('user_id', $user->id)->where('image_id', $id)->first();

    if ($liked) {
        $liked->delete();
    } else {
        $like = new Like();
        $like->image_id = $id;
        $like->user_id = $user->id;

        $like->save();
    }

    echo "success";

    //return redirect()->back(); you don't want to send another request
}

您可能需要检查 image_id 是否存在,然后使用 attach()detach() methods 。例如。 Image::find($id)->likes()->attach(...)

关于javascript - 尝试使用 Ajax 实现类似功能后出现内部服务器错误 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53806494/

相关文章:

php - is_int() 无法在 PHP 中检查 $_GET?

jquery - Blueimp文件上传: my DELETE link doesn't work

javascript - 默认隐藏动态生成的内容

javascript - backbone.js - 事件,知道点击了什么

php - 如何将链接 (<a>) 中的一些信息(值)发送到另一个页面?

javascript - 根据搜索文本框显示/隐藏行

php - mysql查询并编码为json格式

javascript - 如何从 sqlalchemy jsonify 对象?

javascript - 如何使用集合作为谓词来过滤数组

javascript - 未捕获的语法错误 : missing ) after argument list