【问题标题】:Laravel AJAX POST Request failing (500 Internal Server ErrorLaravel AJAX POST 请求失败(500 内部服务器错误
【发布时间】:2019-06-26 23:40:27
【问题描述】:

我已经坚持了几个小时,检查了几十个示例/StackOverflow 答案,但我仍然遇到同样的错误。 这是我第一次使用 AJAX,但我对 Laravel 有丰富的经验。

我遇到的问题是尝试发送我的 AJAX 请求时出现 500 内部服务器错误,其目的是更新数据库中的单行。

我了解到该错误可能是由于 CSRF 令牌未经过验证/未传递到后端造成的,但尽管更改了我的代码,但我仍然遇到同样的问题。

这是我的代码:

view.blade.php

<script>

  function likeCandidate(id){
    console.log("Calling like candidate function");
    $.ajax({
      type:'POST',
      url:'/employer/likecandidate',
      data:{
        '_token' : $('[name="_token"]').val(),
        'cand' : id,
        'job' : {{$id}},
        },
           success:function(data) {
    }
  });
  }
</script>
<!-- In the HTML I am including: -->
@csrf

在我的路线中,我有发布路线:

  Route::post('/likecandidate', 'AjaxController@likeCandidate');

最后在我的控制器中我有了代码:

public function likeCandidate(Request $request)
{

  $this->validate($request, [
    'cand'=>'required',
    'job'=>'required',
  ])

  // Find the application
  $application = Application::where('candidateId', $request->input('cand'))
                                 ->('jobId', $request->input('job'))
                                 ->first();

  // Update the candidate's status to liked.
  $application->status = "Liked";
  $application->save();

  // Return status message
  $msg = "Success";

  return response()->json(array('msg'=> $msg), 200);
}

提前感谢您的帮助。

【问题讨论】:

  • 错误信息是什么?
  • 直到现在才意识到我应该检查 storage/laravel.log!刚刚检查并发现这是我的控制器功能中的语法错误......我认为它没有达到控制器。感谢您的帮助。

标签: javascript php ajax laravel laravel-5


【解决方案1】:

我在这里犯了一个愚蠢的错误,但我想我以前从未使用过 AJAX,所以不知道这是一个问题。我把这个答案留在这里,以防有人犯同样的错误。

在尝试运行该函数时检查 storage/laravel.log 以找出错误消息。就我而言,我的 likeCandidate 函数中有几个语法错误,这导致了 500 内部服务器错误(我认为 500 错误意味着它无法访问控制器。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2015-11-22
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2019-06-05
    相关资源
    最近更新 更多