【发布时间】: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