axios 不会将 post 数据发送到后端

Posted

技术标签:

【中文标题】axios 不会将 post 数据发送到后端【英文标题】:axios doesn't send post data to the back-end 【发布时间】:2019-06-20 19:23:35 【问题描述】:

我是新手,我的问题是我要向我的节点后端发出一个发布请求。使用 react-redux 和 axios。问题是我的后端甚至没有达到请求。并且在浏览器以太网中的网络选项卡上没有任何操作

我尝试了很多其他答案,但都不起作用

此代码在我的 redux 操作页面中

export const postNominationPayments = 函数

postNominationPayments(candidatePayments)

let nominationPayments = 

    depositor:candidatePayments.depositor,
    depositAmount:candidatePayments.depositAmount,
    depositeDate:candidatePayments.depositeDate,
    filePath:candidatePayments.filePath,
    status:candidatePayments.status,
    nominationId:candidatePayments.nominationId

;


return function (dispatch) 
    console.log("**",nominationPayments);
        var headers = 
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        
     axios
        .post(
            `$API_BASE_URL/nominations/payments`,
            
                nominationPayments
            ,headers: headers
        )
        .then(response => 
            console.log("))))))))))))",response);
            // dispatch(
            //     type: POST_NOMINATION_PAYMENTS,
            //     payload: response.data
            // )
        )
        .catch(error => 
            console.log("===",error);
            // dispatch( type: AUTH_FAILED );
            // dispatch( type: ERROR, payload: error.data.error.message );
          );



;

post 数据按预期发送。使用 postman 后也可以正常工作。但它不起作用。 想不出解决办法。 我的代码有什么问题? 在此先感谢

【问题讨论】:

【参考方案1】:

应该是

 axios.post(
            `$API_BASE_URL/nominations/payments`, nominationPayments,
             headers: headers).

可以删除标题部分,默认为application/json

【讨论】:

当我删除返回函数 (dispatch) 部分时它起作用了..为什么会这样 你如何调用这个函数? if (activeStep === 2) postNominationPayments(this.state); 使用 , this.props.dispatch(postNominationPayments(this.state)); 调用它 那是问题..以前我没有像 this.props 那样打电话..现在它正在工作..谢谢【参考方案2】:

您将数据传递给 axios 发布请求的方式不正确。你需要传递类似下面的东西

改变

  axios(
        `$API_BASE_URL/nominations/payments`,
        
            nominationPayments
        ,headers: headers
    )

  axios.post(
       `$API_BASE_URL/nominations/payments`,
         nominationPayments,
         
              headers: headers
         
    )

【讨论】:

【参考方案3】:

axios.getaxios.post 采用不同类型的参数,可能很难记住。

所以我通常只坚持更冗长的方式:

axios(
  method: 'post',
  url: `$API_BASE_URL/nominations/payments`,
  data: 
    nominationPayments
  ,
  headers
)
  .then(response => 
    // ...
  )
  .catch(error => 
    // ...
  )

【讨论】:

【参考方案4】:

您是否检查过您的 MongoDB 服务器是否已启动并正在运行?

在我的例子中,我的 React 服务器正在运行,但是,我的 MongoDB 服务器没有。我同时运行两者,并且能够将数据发布到后端。

【讨论】:

以上是关于axios 不会将 post 数据发送到后端的主要内容,如果未能解决你的问题,请参考以下文章

前端发送数据到后端

如何将 iso 8601 日期发送到后端?

如何自动获取用户的地理位置值并将其作为 POST 请求发送到后端

ionic2 将对象数据发送到后端

如何使用 jquery 将数据从本地存储发送到后端

Node.js 使用 AJAX 将数据发送到后端