You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js中通过Axios从Laravel获取数据时遇404错误求助

解决Laravel+Vue获取数据时的404错误

问题根源

404错误说明请求的/api/books路径在Laravel应用中不存在,大概率是路由配置错误或路由缓存导致的。

修复步骤

1. 修正路由定义

Laravel的api.php和web.php路由有不同的前缀规则:

  • 如果路由写在api.php中:框架会自动给所有路由加上/api前缀,因此路由应改为:
Route::get('/books', [BookInventoryController::class, 'index'])->name('api.books');

此时前端axios请求/api/books就能正确匹配。

  • 如果路由写在web.php中:没有自动前缀,可保留原路由定义,但要避免和api.php中的路由冲突:
Route::get('/api/books', [BookInventoryController::class, 'index'])->name('api.books');

2. 清除路由缓存

Laravel会缓存路由以提升性能,执行以下命令清除缓存,确保新路由生效:

php artisan route:clear

如果之前运行过php artisan route:cache,这一步必须执行。

3. 验证控制器命名空间

确保BookInventoryController的命名空间正确,一般位于App\Http\Controllers下,路由文件顶部要正确引入:

use App\Http\Controllers\BookInventoryController;

Route::get('/books', [BookInventoryController::class, 'index'])->name('api.books');

4. 检查已注册路由

运行以下命令查看所有生效的路由,确认/api/books是否在列表中:

php artisan route:list

如果找不到该路由,重新检查路由文件的拼写和位置。

5. 修正前端拼写错误

注意到Vue组件中有个拼写错误:console.log('Erroe:', error); 应改为 console.log('Error:', error);,虽然不影响404问题,但修正后能更准确地调试。

额外检查项

  • 确认Book模型存在且能正常查询数据(可直接测试控制器方法)。
  • 查看Laravel日志文件storage/logs/laravel.log,排查是否有其他隐藏错误影响路由注册。

内容的提问来源于stack exchange,提问作者user483882

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:30:11