Axios发布请求未发送参数

时间:2020-04-20 22:05:01

标签: javascript axios

我有一个scipt标记,其中我通过axios向路由发出发布请求.Axios没有通过该参数发送参数。 这是axios的代码:

 <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  <script type="text/javascript">

const data={'firstName':"sai"}

    axios({
      url: "/",
      method: "post",
      data: data,
    })
    .then(response => {
      console.log(response);
    })
    .catch(error => console.error(error));
  </script>

这是事物的明显方面:

app.post("/",function(req,res){
   console.log("post route");
    console.log(req.body);
})

我是控制台,在req.body的帮助下记录来自发布请求的数据(我的body解析器也工作正常,并通过其他常规形式进行了测试).req到达了发布路由。主体为空时始终记录“ {}”。 请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

选项1: 定义配置对象

let config = {
  headers: {
     'Content-Type': 'application/x-www-form-urlencoded',
  } 
}  

必填:对参数使用数组,对'application / x-www-form-urlencoded'使用js对象

const params = new URLSearchParams();
params.append('PARAM1', 'VALUE1');
params.append('PARAM2', 'VALUE2');

电话留言

 axios.post( uri, params, config )

 axios({
     url,
     headers: { 'content-type': 'application/x-www-form-urlencoded' }
     data: params
 })

选项2: 创建一个api实例(可选)并设置默认的内容类型

const api_local = axios.create({
   baseURL: 'http://localhost:1000/myapi',
});
api_local.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; 

必填:对参数使用数组,对'application / x-www-form-urlencoded'使用js对象

const params = new URLSearchParams();
params.append('PARAM1', 'VALUE1');
params.append('PARAM2', 'VALUE2');

电话留言

 api_local.post( uri, params )

答案 1 :(得分:1)

我的人体分析仪也工作正常。经过其他正常形式的测试

普通表单提交编码为multipart/form-dataapplication/x-www-form-urlencoded的数据。

Axios默认以application/json的形式提交数据。

您需要一个不同的正文解析器。一种支持JSON。

(或转到submit the data in a different format