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

Vue项目中axios POST提交的参数PHP无法接收如何解决?

问题修复方案

现有代码的错误点

  • Vue的data属性拼写错误:customrName少了字母e,和input绑定的customerName不一致,取到的值始终为空
  • axios传参格式错误:将FormData实例包在{form}对象中提交,参数结构不符合后端接收要求
  • PHP侧参数键名不匹配:前端传参键名为驼峰格式customerName,PHP使用下划线格式customer_name取值,无法匹配到对应参数
  • PHP语法错误:header声明行缺少右括号,会提前触发服务端语法报错

修复后代码

前端Vue代码

<div id="app">
  <input type="text" v-model="customerName" placeholder="Enter customer first name">
  <button type="button" @click="buttonClicked()">
    点击
  </button>
</div>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
new Vue({
  el: "#app",
  data: {
    // 修复拼写错误
    customerName : '',
  },
  methods: {
    buttonClicked(){
      var form = new FormData();
      form.append('customerName', this.customerName);
      // 直接传递FormData实例,不要嵌套在对象中
      axios.post('替换为你的PHP接口地址', form)
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });
    }
  }
})
</script>

后端PHP代码(适配FormData传参)

<?php
// 修复语法错误,补全右括号
header("Content-type: application/json");
// FormData格式的传参直接通过$_POST读取,键名和前端保持一致
$CustomerName = $_POST['customerName'];
echo json_encode($CustomerName);
?>

可选:JSON格式传参方案

如果不需要传递文件等复杂数据,也可以直接用JSON格式传参,不需要用到FormData:

前端传参写法

axios.post('替换为你的PHP接口地址', {
  customerName: this.customerName
})

对应PHP接收代码

<?php
header("Content-type: application/json");
$data = json_decode(file_get_contents("php://input"), TRUE);
// 键名和前端传的参数保持一致
$CustomerName = $data['customerName'];
echo json_encode($CustomerName);
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:57:00