Laravel 5.2和ajax无法加载资源:服务器响应状态为500
嗨我试图使用laravel和ajax制作待办事项列表应用程序问题是如果我添加,编辑,删除任务我得到一个无法加载资源:服务器响应状态为500 但是当我点击带有错误的链接时,返回的数据以json格式显示
查看:
Laravel Ajax CRUD Example Laravel Ajax ToDo App
ID Task Description Date Created Actions @foreach ($tasks as $task) id}}"> {{$task->id}} {{$task->task}} {{$task->description}} {{$task->created_at}} @endforeach
然后我有一个JS文件
$(document).ready(function(){ var url = "/ajax-crud/public/tasks"; //display modal form for task editing $('.open-modal').click(function(){ var task_id = $(this).val(); $.get(url + '/' + task_id, function (data) { //success data console.log(data); $('#task_id').val(data.id); $('#task').val(data.task); $('#description').val(data.description); $('#btn-save').val("update"); $('#myModal').modal('show'); }) }); //display modal form for creating new task $('#btn-add').click(function(){ $('#btn-save').val("add"); $('#frmTasks').trigger("reset"); $('#myModal').modal('show'); }); //delete task and remove it from list $('.delete-task').click(function(){ var task_id = $(this).val(); $.ajax({ type: "DELETE", url: url + '/' + task_id, success: function (data) { console.log(data); $("#task" + task_id).remove(); }, error: function (data) { console.log('Error:', data); } }); }); //create new task / update existing task $("#btn-save").click(function (e) { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') } }) e.preventDefault(); var formData = { task: $('#task').val(), description: $('#description').val(), } //used to determine the http verb to use [add=POST], [update=PUT] var state = $('#btn-save').val(); var type = "POST"; //for creating new resource var task_id = $('#task_id').val();; var my_url = url; if (state == "update"){ type = "PUT"; //for updating existing resource my_url += '/' + task_id; } console.log(formData); $.ajax({ type: type, url: my_url, data: formData, dataType: 'json', success: function (data) { console.log(data); var task = '' + data.id + ' ' + data.task + ' ' + data.description + ' ' + data.created_at + ' '; task += ''; task += ' '; if (state == "add"){ //if user added a new record $('#tasks-list').append(task); }else{ //if user updated an existing record $("#task" + task_id).replaceWith( task ); } $('#frmTasks').trigger("reset"); $('#myModal').modal('hide') }, error: function (data) { console.log('Error:', data); } }); }); });
和路线
Route::get('/tasks/{task_id?}',function($task_id){ $task = Task::find($task_id); return Response::json($task); }); Route::post('/tasks',function(Request $request){ $task = Task::create($request->all()); return Response::json($task); }); Route::put('/tasks/{task_id?}',function(Request $request,$task_id){ $task = Task::find($task_id); $task->task = $request->task; $task->description = $request->description; $task->save(); return Response::json($task); }); Route::delete('/tasks/{task_id?}',function($task_id){ $task = Task::destroy($task_id); return Response::json($task); }); Route::get('/', function () { $tasks = Task::all(); return View::make('welcome')->with('tasks',$tasks); });
问题在于
Route::post('/tasks',function(Request $request){ $task = Task::create($request::all()); return Response::json($task); }); Route::put('/tasks/{task_id?}',function(Request $request,$task_id){ $task = Task::find($task_id);
所以我通过添加\Illuminate\Http\Request
作为$ request的类型来解决问题