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

Laravel中DELETE类型路由无法正常工作问题咨询

解决API DELETE路由api_token缺失问题

核心原因分析

之前POST路由里api_token放URL查询参数能正常工作,改成DELETE路由后报错,大概率是认证逻辑对请求参数的获取方式有限制,或是Postman的DELETE请求参数传递方式不符合解析规则。

具体解决方案

1. 优先用请求头传递api_token(最安全规范)

在Postman的Headers栏添加:

api_token: hcvhjbhjb12khjbjhc876

如果是Laravel新版本推荐的Bearer Token认证,则添加:

Authorization: Bearer hcvhjbhjb12khjbjhc876

这种方式不会把敏感的api_token暴露在URL里,也能避开不同请求类型的参数解析差异。

2. 调整Postman的DELETE请求参数传递

如果一定要用URL或表单传递:

  • 用URL查询参数的话,直接拼在路由后:http://localhost/delete-role/1?api_token=hcvhjbhjb12khjbjhc876(1为示例role_id),同时确认你的auth:api中间件允许从查询参数读取api_token——Laravel默认的TokenGuard支持该方式,若自定义了认证逻辑,需确保逻辑包含查询参数的读取。
  • 用表单传递的话,在Postman的Body标签选择x-www-form-urlencoded,添加api_token键值对,再发送DELETE请求到http://localhost/delete-role/1。

3. 调试控制器参数接收

在Remove方法中添加调试代码,确认参数是否能正常获取:

public function Remove($role_id, Request $request)
{
    // 打印所有请求参数,检查api_token是否存在
    dd($request->all());
}

如果把api_token放在路由参数里,需确保方法接收该参数:

public function Remove($role_id, $api_token)
{
    dd($api_token);
}

注意:URL里携带api_token存在安全隐患,容易被日志记录,不推荐使用。

4. 检查认证配置

打开config/auth.php,确认api guard的配置为默认token驱动:

'api' => [
    'driver' => 'token',
    'provider' => 'users',
    'hash' => false,
],

该配置下,Laravel会自动从请求头、查询参数、请求体中查找api_token。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:50:47