我已经坚持了好几个小时了,检查几十个例子/ 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);
}
在此先感谢您的帮助。
答案 0 :(得分:0)
这里是我的愚蠢错误,但是我想我以前从未使用过AJAX,所以我不知道这是一个问题。万一有人犯同样的错误,我就把这个答案留在这里。
在尝试运行该功能时,检查storage / laravel.log以查找错误消息。就我而言,我的likeCandidate函数中有一些语法错误,这导致了500内部服务器错误(我认为500错误意味着它无法访问控制器。)