繁体   English   中英

Axios post请求不发送参数

[英]Axios post request not sending parameters

我有一个 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 的帮助下记录来自 post 请求的数据(我也有 body-parser 工作得很好。用其他正常形式测试过)。req 通过点击 post 路由。但是身体是空总是记录“{}”。 这个你能帮我吗。

选项 1:定义配置 object

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

强制:使用数组作为参数,而不是 js object 用于 'application/x-www-form-urlencoded'

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'; 

强制:使用数组作为参数,而不是 js object 用于 'application/x-www-form-urlencoded'

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

来电发帖

 api_local.post( uri, params )

我也有 body-parser 工作得很好。用其他正常的 forms 测试

正常 forms 提交编码为multipart/form-dataapplication/x-www-form-urlencoded的数据。

Axios 默认提交数据为application/json

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

(或以不同的格式提交数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM