2017-06-15 1 views
0

Je suis en train d'envoyer des données de nœud Réagir à js. J'utilise Ajax. Je ne reçois pas de données par Node.jsdonnées à envoyer au noeud js Réagir

Ceci est mon code sur React:

let id = item.id

$.ajax({ 
      url: '/postid', 
      type: 'POST', 
      data: id 

     }); 
     console.log('React id : ' + id); 

Et mon code sur Node.js

app.post('/postid', function (req, res) { 

     console.log("node js ok"); 
     var getId = req.body.id; // here, i don't get the id value 
     console.log("id Node js : " + getId);  
    }); 

Avez-vous une idée? Merci

+0

L'identifiant est une chaîne, je suppose? –

+0

oui c'est une chaîne –

+0

Essayez la réponse que j'ai donnée. –

Répondre

1

Est-ce comme ça au frontend:

$.ajax({ 
    url: '/postid', 
    type: 'POST', 
    data: JSON.stringify({ id: 'id here' }) 
}); 

Utilisez body-parser au serveur du nœud autrement, vous ne serez pas en mesure d'obtenir des paramètres à partir du corps de la requête.

+0

Vous avez raison, j'importe le body-parser, et ça marche, merci :)! –

0

Pouvez-vous essayer

$.ajax({ 
     url: '/postid', 
     type: 'POST', 
     data: {"id": id} 

    }); 
    console.log('React id : ' + id); 
+0

cela ne fonctionne pas .. J'ai une erreur sur la console de noeud: « ne peut pas lire propriété id undefined » –

+0

Avez-vous bodyparser et CORS en vous exprimer app –

+0

Je did'nt ai bodyparser, je l'importer et il fonctionne, merci :) –

1

Vous devriez utiliser probablement approche plus moderne comme FetchAPI. Utilisez-le avec Polyfill, car il n'est pas entièrement pris en charge dans tous les navigateurs. Avec chercher votre code ressemblera à ceci:

fetch('/postid', { 
    method: 'POST', 
    // headers: {} <-- You can include some headers if you want 
    body: JSON.stringify({id: id}) 

}).then(function(response) { 
    return response.json(); 

}).then(function(json) { 
    // json -> is your response from server 

}).catch(function(error) { 
    // Handle errors here 

});