4
votes

axios n'envoie pas de données de publication au back-end

Je suis nouveau pour réagir et mon problème est que je vais faire une demande de publication sur mon nœud principal. en utilisant react-redux et axios. le truc, c'est que mon back-end ne répond même pas à la demande. et aucune action sur l'onglet réseau dans l'éther du navigateur

J'ai essayé beaucoup d'autres réponses mais ne fonctionne pas

ce code est dans ma page d'action redux

export const postNominationPayments = function

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 });
          });



};

}

les données de publication arrivent comme prévu. aussi le retour fonctionne correctement en utilisant le facteur. mais ça ne marche pas. ne pouvait pas penser à une solution. quel est le problème avec mon code? merci d'avance


0 commentaires

3 Réponses :


0
votes

La façon dont vous transmettez les données à axios post request est incorrecte. Vous devez transmettre quelque chose comme ci-dessous

Changer

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

En

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


0 commentaires

0
votes

Cela devrait être

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

On peut également supprimer la section des en-têtes et une valeur par défaut est application/json


5 commentaires

quand je supprime la fonction de retour (dispatch) {} partie ça marche.. pourquoi est-ce


Comment appelle-t-on cette fonction?


if (activeStep === 2) {postNominationPayments (this.state);


appelez-le en utilisant, this.props.dispatch (postNominationPayments (this.state));


c'était le problème .. auparavant, je n'appelais pas comme ça.props .. maintenant ça marche..merci



0
votes

axios.get et axios.post prennent différents types d'arguments et peuvent être difficiles à retenir.

Je m'en tiens donc généralement à la manière la plus verbeuse:

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


0 commentaires