为了账号安全,请及时绑定邮箱和手机立即绑定

axios post请求不发送参数

axios post请求不发送参数

长风秋雁 2022-07-08 16:00:22
我有一个 scipt 标签,我在其中通过 axios 向路由发出 post 请求。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 route.BUt 身体是空总是记录“{}”。这个你能帮我吗。
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

选项 1: 定义配置对象


let config = {

  headers: {

     'Content-Type': 'application/x-www-form-urlencoded',

  } 

}  

强制:使用数组作为参数,而不是 js 对象作为 '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 对象作为 'application/x-www-form-urlencoded'


const params = new URLSearchParams();

params.append('PARAM1', 'VALUE1');

params.append('PARAM2', 'VALUE2');

来电发帖


 api_local.post( uri, params )


查看完整回答
反对 回复 2022-07-08
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

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

普通表单提交编码为multipart/form-data或的数据application/x-www-form-urlencoded

默认情况下,Axios 将数据提交为application/json.

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

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


查看完整回答
反对 回复 2022-07-08
  • 2 回答
  • 0 关注
  • 552 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信