javascript - Laravel AJAX POST 请求失败(500 内部服务器错误
问题描述
我已经坚持了几个小时,检查了几十个示例/ 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);
}
提前感谢您的帮助。
解决方案
我在这里犯了一个愚蠢的错误,但我想我以前从未使用过 AJAX,所以不知道这是一个问题。我把这个答案留在这里,以防有人犯同样的错误。
检查 storage/laravel.log 以在尝试运行该功能时找出错误消息。就我而言,我的 likeCandidate 函数中有几个语法错误,这导致了 500 内部服务器错误(我认为 500 错误意味着它无法访问控制器。)
推荐阅读
- python-3.x - 即使用户输入是小写字母或大写字母,我也想删除该元素
- java - Java 和我需要帮助来理解要写出的代码
- c++ - 编译器如何将链表中的地址串在一起?
- json - 重复对象的 JSON 模式数组
- c# - Selenium C# 标签文本单击
- python - 不显示添加到 networkx 图的一个节点的图像
- java - Java 8 - 将轻元素从另一个 Map 放入目标 Map
- r - 使用 Xaringan 时 custom.css 消失
- f# - F# 类成员中的 ref 和 byref<> 参数
- python-3.x - 如何使用 python-camelot 获取表格坐标?