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

React TypeScript通过API向Laravel提交数据返回空值,Postman测试正常

问题排查与解决方案

1. 数据结构层级不匹配

你在React代码里把业务数据包裹在了value字段下:

body: JSON.stringify({
  value: order
}),

这导致实际提交的JSON结构是:

{
  "value": {
    "id": "1",
    "first_name": "XXXX",
    "last_name": "XXXX",
    ...
  }
}

而你用Postman测试时应该是直接提交了order本身的结构(没有外层value嵌套),所以Laravel代码里如果直接读取request('first_name')这类字段,自然拿不到值。

解决方法:

  • 要么修改React代码,直接提交order对象:
    body: JSON.stringify(order),
    
  • 要么修改Laravel代码,先获取value对象再读取内部字段:
    $payload = request()->get('value');
    $firstName = $payload['first_name'];
    // 或者直接用链式读取 request('value.first_name')
    

2. Authorization头格式错误

你的请求头里Authorization的写法存在格式问题:

Authorization: `Bearer:`+token,

标准的Bearer Token格式是Bearer [token内容],中间必须有空格,当前写法会变成Bearer:xxxxxx,Laravel无法正确解析令牌,可能导致认证失败后返回空响应。

解决方法:修正头信息格式:

Authorization: `Bearer ${token}`,

3. 跨域凭据配置问题

如果前后端域名不同,credentials: "same-origin"会限制凭据(如Cookie)的传递,即便你用了Bearer Token,也可以尝试调整配置:

credentials: "include",

同时确保Laravel的CORS配置文件(config/cors.php)中supports_credentials设置为true。

4. 直接验证Laravel的请求接收情况

可以在Laravel控制器的方法里先打印完整请求内容,快速定位问题:

public function addNewLead(Request $request)
{
    // 打印所有接收的请求数据,确认结构是否正确
    dd($request->all());
    // 后续业务逻辑...
}

通过这个方式能直接确认是数据没传送到后端,还是后端读取方式有误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:22:01