簡體   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