我正在向 laravel 中的控制器发送一个发布请求,但它显示 500 错误

Posted

技术标签:

【中文标题】我正在向 laravel 中的控制器发送一个发布请求,但它显示 500 错误【英文标题】:I am sending a post request to my controller in laravel but it is showing 500 error 【发布时间】:2019-10-26 14:19:14 【问题描述】:

我正在向我的 post 控制器发送一个 ajax post 请求,但它显示 500 内部服务器错误

在我看来,Ajax 请求在 head 标记中带有元标记。

<script src="url('//code.jquery.com/jquery-1.11.1.min.js')"></script>
<script>
   $.ajaxSetup(
       headers: 
           'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')

       

);
 $(document).ready(function()
     $('.like').on('click', function(event) 
        event.preventDefault();
        var isLike = event.target.previousElementSibling == null;
        console.log(isLike);
        $.ajax(
          method: 'post',
          url: '/liked',
          data: isLiked: isLike, post_id:5

        );

    );
);

包含类似 Post 函数的 POst 控制器

    public function likePost(Request $request)
    
        $post_id = $request['post_id'];
        $isLike = $request['isLike'] === 'true';
        $update = false;
        $post = Post::find($post_id);
        $user = Auth::user();
        $like = $user->like()->where('post_id',$post_id)>first();
        if($like)
        
            $already_liked = $like->isLiked;
            $update = true;
            if($already_liked == $isLike)
            
                $like->delete();
                return null;
            
         else
            $like = new Like();
        
        $like->isLiked = $isLike;
        $like->user_id = $user->id;
        $like->post_id = $post->id;
        if($update)
            $like->update();
        
        else
            $like->save();
        
        return null;
    

你能帮帮我吗

【问题讨论】:

错误 500 是服务器生成的错误。你的控制器有问题。发布您的控制器代码。 【参考方案1】:

您可以尝试使用下面的代码

$.ajax(
      url:" route('liked') ", //router in web.php
      method:"POST", 
      data:query:query,
      success:function(data)
          //show data to html
         
     
  );
  
  
//Laravel router web.php
Route::post('/liked','WebController@store')->name('liked');

【讨论】:

我的基本上不是一个表单,当我们点击一​​个链接时,它会将数据保存在数据库中 $like = $user->like()->where('post_id',$post_id)>first();你修改 ->first() 你看到了:***.com/questions/30154489/…

以上是关于我正在向 laravel 中的控制器发送一个发布请求,但它显示 500 错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:通过无表单的 AJAX 向控制器发送数据

Laravel 5一次向多个用户发送邮件

从 Android 向 Laravel 发送 JSON

当通过 Ajax 将数据发送到 Laravel 中的控制器时,数据为空

Laravel 中的消息关系功能

React Native / Laravel - 向 API 发送请求