【问题标题】:axios doesn't send post data to the back-endaxios 不会将 post 数据发送到后端
【发布时间】: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 后也可以正常工作。但它不起作用。 想不出解决办法。 我的代码有什么问题? 在此先感谢

【问题讨论】:

    标签: reactjs react-redux axios


    【解决方案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 服务器没有。我同时运行两者,并且能够将数据发布到后端。

        【讨论】:

          猜你喜欢
          • 2020-02-21
          • 2021-03-24
          • 1970-01-01
          • 2022-08-09
          • 1970-01-01
          • 2021-11-16
          • 1970-01-01
          • 2017-12-11
          • 2021-06-06
          相关资源
          最近更新 更多