Laravel AJAX like按钮500(内部服务器错误)

Laravel AJAX like button 500 (Internal Server Error)

本文关键字:内部 服务器 错误 AJAX like 按钮 Laravel      更新时间:2023-09-26

我正试图使AJAX像Laravel按钮。控制台返回500(内部服务器错误)。这是我的:

JavaScript

$(function(){
$('#likeForm').submit(function(e){
    e.preventDefault();
    var user = $('input[name="user_id"]').val();
    var token = $('input[name="_token"]').val();
    $.ajax({
        url:'like-post',
        type: 'POST',
        data: {'_token': token, 'user': user },
        dataType: 'JSON',
        success: function() {
            alert('succsess');
        },
        error: function(){
            alert('error' );
        }})})});

html.blade

<form method="POST" id="likeForm" action="">
<input type="hidden" name="user_id" value="{{$user->id}}" >
<a onclick="$('#likeForm').submit()"><span>
<span class="fa fa-heart"></span> Like</a>
<input type="hidden" name="_token" value="{{ Session::token() }}">
</form>

控制器

 public function likeUser (Request $r) {
    $user_id = $r->input('user');
    Favorite::create(['user_id' => Auth::user()->id, 'liked_id' => $user_id]);
}

和路线

Route::post('like-post', 'FavoritesController@likeUser');

你可以使用remove Request from method signature并将整个方法写在一行中:

 public function likeUser () {
    Favorite::create(['user_id' => Auth::user()->id, 'liked_id' => 'Request::get('user')]);
}

url('/like-post')是laravel的方式:

$.ajax({
        url:"{{url('/like-post')}}",
        type: 'POST',
        data: {'_token': token, 'user': user },
        dataType: 'JSON',

从你看到的错误图像…将错误的类注入为需要使用的依赖项Illuminate'Http'Requestnot App'Http'Requests'Request

IoC容器的工作方式是查看你的代码,找到你需要注入的类并实例化它们,这里你传递了一个不能实例化的抽象类。

试一下,告诉我是否有帮助。