Laravel 是一个流行的 PHP 框架,用于构建现代 Web 应用程序。Ajax(Asynchronous JavaScript and XML)是一种在不重新加载整个页面的情况下与服务器交换数据并更新部分网页的技术。
Ajax 请求通常分为以下几种类型:
假设我们有一个简单的任务列表应用,需要通过 Ajax 更新任务的完成状态。
document.addEventListener('DOMContentLoaded', function() {
let taskCheckbox = document.querySelectorAll('.task-checkbox');
taskCheckbox.forEach(function(checkbox) {
checkbox.addEventListener('change', function() {
let taskId = this.getAttribute('data-task-id');
let isChecked = this.checked;
fetch(`/tasks/${taskId}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
body: JSON.stringify({ completed: isChecked })
})
.then(response => response.json())
.then(data => {
if (data.success) {
console.log('Task updated successfully');
} else {
console.error('Failed to update task');
}
})
.catch(error => console.error('Error:', error));
});
});
});
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Task;
class TaskController extends Controller
{
public function update(Request $request, Task $task)
{
$task->update([
'completed' => $request->input('completed')
]);
return response()->json(['success' => true]);
}
}
在 routes/web.php
中添加以下路由:
use App\Http\Controllers\TaskController;
Route::put('/tasks/{task}', [TaskController::class, 'update']);
X-CSRF-TOKEN
,并在 HTML 中设置 meta
标签。通过以上步骤和代码示例,你可以实现一个基本的 Laravel Ajax 更新功能,并解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云