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

Laravel API在Postman发送POST请求返回404 GET请求正常如何解决

Laravel POST接口返回404问题排查与解决

核心原因梳理

  • 路由路径匹配错误:/store路由被/item前缀包裹,完整请求路径为/item/store,Postman路径填写错误直接触发404
  • 路由语法错误:你提供的路由代码中prefix方法的闭包缺少闭合花括号},导致后续路由未被正确注册
  • 路由缓存未更新:修改路由后未清理Laravel路由缓存,旧的路由规则未覆盖
  • 路由文件位置错误:如果路由写在api.php中,所有请求路径需要额外加/api前缀;如果写在web.php中,Laravel默认要求携带CSRF令牌,Postman请求不带令牌会返回404/419状态码
  • 配置错误:Postman中请求方法选错、HTTP协议与站点配置不匹配(如误填https但站点未配置SSL)也会触发404

解决步骤

  1. 修正路由配置,补全语法错误,同时优化不合理的删除路由配置:
use App\Http\Controllers\ItemController; // 确保控制器命名空间已导入

Route::get('/items', [ItemController::class, 'index']);
Route::prefix('/item', function () {
    Route::post('/store', [ItemController::class, 'store']);
    Route::put('/{id}', [ItemController::class, 'update']);
    Route::delete('/{id}', [ItemController::class, 'destroy']); // 原删除路由路径为/store不符合REST规范,改为接收id参数
});
  1. 执行php artisan route:list命令查看已注册路由列表,确认POST /item/store路由存在且指向控制器方法正确。
  2. 清理路由缓存:
    • 开发环境执行php artisan route:clear清除旧缓存
    • 生产环境执行php artisan route:cache重新生成缓存
  3. 校验Postman请求配置:
    • 请求方法选择POST
    • 请求路径填写完整:如果路由在web.php中地址为http://你的域名/item/store,如果在api.php中地址为http://你的域名/api/item/store
    • 如果路由写在web.php中,在app/Http/Middleware/VerifyCsrfToken.php文件中新增排除规则,跳过CSRF校验:
    protected $except = [
        '/item/store'
    ];
    
  4. 额外校验:store方法中request()->item["name"]需要请求体携带结构为{"item": {"name": "xxx"}}的JSON参数,否则路由匹配成功后会返回500错误,可提前调整参数传递逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:27:05