修改
感谢您的想法 - 我在试图找出如何调试此问题时发疯了。我最终只是试图完成这个帖子调用的原始意图,数据在我的数据库中正常更新。我在HTML,AJAX和路由中保留了所有内容,但更新了我的控制器。
500错误似乎来自于我在我的控制器中尝试dd($ request)的事实,我只是不明白。我可以在GET请求上dd($ request)但是我不能在POST上?对我来说似乎很疯狂。我想这是一个全新的问题..
我正在尝试使用select元素的值在Laravel中创建一个AJAX帖子。我已经阅读了几篇与AJAX帖子上的500个错误相关的帖子,并且尽我所能解决了这个问题,但我无法弄清楚出了什么问题。大多数人指出csrf_token,并检查laravel.log是否有问题,但是我插入了csrf_token并检查了我的日志 - 当我在浏览器中测试我的代码时,没有任何日志。这就是我所拥有的:
HTML
<!-- I have this placed in the head -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<!-- This table displays each task with a select dropdown for the user to mark their status -->
<tbody>
@foreach ($tasks as $task)
<tr class="course-row">
<td>{{ $task->title }}</td>
<td>{{ $task->description }}</td>
<td>
<select id="select-status-{{ $task->id }}" class="select-status" data-task-id="{{ $task->id }}">
<option value="0">Incomplete</option>
<option value="1">In Progress</option>
<option value="2">Complete</option>
</select>
</td>
</tr>
@endforeach
</tbody>
JQUERY / AJAX
$(document).ready(function() {
$.ajaxSetup({
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
});
$('.select-status').change(function() {
var $taskId = $(this).attr('data-task-id');
var $status = $(this).val();
$.ajax({
type: 'POST',
url: '/taskstatus/'+$taskId,
data: {taskId:$taskId, status:$status}
});
});
});
ROUTE
Route::post('/taskstatus/{id}', 'StatusController@markTask');
控制器方法
public function markTask(Request $request)
{
dd($request);
}
我最初有一个使用相同网址的表单,但只是使用表单操作来发布帖子请求..但是用户将在页面上进行大量的这些选择而我不能重新加载页面我需要使用AJAX。最终,用户选择将更新数据透视表值,并将确定后续任务的状态。在这一点上,我只是试图调试并简单地dd我的请求,但我因为500错误而陷入停顿。有什么建议吗?