像按钮500一样的Laravel AJAX(内部服务器错误)

时间:2016-08-30 09:21:59

标签: javascript php ajax laravel

我正试图在Laravel中制作类似AJAX的按钮。控制台返回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>

的Controler

 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');

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以使用从方法签名中删除请求,并将整个方法写在一行:

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

答案 2 :(得分:0)

从您的错误图像中看到的内容...您正在注入错误的类作为您需要使用的依赖项 Illuminate\Http\Request 不是App\Http\Requests\Request

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

尝试并告诉我它是否有帮助。