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

Laravel框架中通过Ajax向Controller发送数据接收为null问题求助

故障原因定位

核心问题:AJAX配置参数不匹配提交数据类型

你当前代码中同时配置了processData: false和contentType: false,这两个参数仅适用于提交FormData对象的场景(比如带文件上传的表单),而你实际传递的是form.serializeArray()生成的普通键值对数组:

  • processData: false会阻止jQuery自动将数组/对象格式的data转换为表单查询字符串,后端无法正常解析提交的内容
  • contentType: false会让请求头不携带正确的application/x-www-form-urlencoded标识,Laravel不会按表单格式解析请求体

其他可能排查点

  • 检查表单是否包含Laravel要求的CSRF令牌:表单内添加@csrf,或者在AJAX请求头中配置X-CSRF-TOKEN,如果CSRF校验不通过也会出现请求参数解析异常的情况
  • 检查表单提交方式是否为POST,路由定义是否和表单method匹配

修复方案

方案1:普通表单提交无文件上传

直接删除AJAX配置中的以下两行即可:

processData: false,
contentType: false,

方案2:后续需要支持文件上传

将data参数改为传递FormData对象,保留两个配置项:

data: new FormData(form),

附加优化提示

你的校验规则中pass字段的规则末尾多了一个多余的竖线,建议删除避免潜在异常:
原代码:'pass' => 'required|min:8|max:20|'
修改为:'pass' => 'required|min:8|max:20'


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:15:05