我一直坚持这样几个小时,检查几十个例子/ StackOverflow的答案,但我仍然得到同样的错误。这是我第一次用AJAX的工作,但我有与Laravel体验了坚实的用量。
我得到的问题是一个500内部服务器错误尝试发送我的AJAX请求,其目的是在我的数据库更新单行时。
我读过该错误可能由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);
}
在此先感谢您的帮助。
愚蠢的错误从我这里,但我想我从来没有使用AJAX之前,所以不知道这是一个问题。我在这里离开这个答案,以防万一有人犯同样的错误。
检查存储/ laravel.log试图运行功能时找出错误消息。在我来说,我有一对夫妇的语法错误在我的likeCandidate功能,这是导致500内部服务器错误(我假设500错误意味着它是无法访问控制器)。