axios post请求不发送参数

我有一个 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 身体是空总是记录“{}”。这个你能帮我吗。


长风秋雁
浏览 555回答 2
2回答

米脂

选项 1: 定义配置对象let config = {&nbsp; headers: {&nbsp; &nbsp; &nbsp;'Content-Type': 'application/x-www-form-urlencoded',&nbsp; }&nbsp;}&nbsp;&nbsp;强制:使用数组作为参数,而不是 js 对象作为 'application/x-www-form-urlencoded'const params = new URLSearchParams();params.append('PARAM1', 'VALUE1');params.append('PARAM2', 'VALUE2');来电发帖&nbsp;axios.post( uri, params, config )或者&nbsp;axios({&nbsp; &nbsp; &nbsp;url,&nbsp; &nbsp; &nbsp;headers: { 'content-type': 'application/x-www-form-urlencoded' }&nbsp; &nbsp; &nbsp;data: params&nbsp;})选项 2: 创建一个 api 实例(可选)并设置默认内容类型const api_local = axios.create({&nbsp; &nbsp;baseURL: 'http://localhost:1000/myapi',});api_local.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';&nbsp;强制:使用数组作为参数,而不是 js 对象作为 'application/x-www-form-urlencoded'const params = new URLSearchParams();params.append('PARAM1', 'VALUE1');params.append('PARAM2', 'VALUE2');来电发帖&nbsp;api_local.post( uri, params )

繁花不似锦

我也有 body-parser 工作得很好。用其他正常形式测试普通表单提交编码为multipart/form-data或的数据application/x-www-form-urlencoded。默认情况下,Axios 将数据提交为application/json.您需要一个不同的正文解析器。一种支持 JSON。(或以不同的格式提交数据)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript