2017-06-15 2 views
0

Ich versuche Daten von React to Node js zu senden. Ich benutze Ajax. Ich habe nicht Daten von Node.jsSenden von Daten von React to Node js

Dies ist mein Code auf React:

let id = item.id

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

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

Und mein Code auf 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);  
    }); 

Haben Sie eine Idee? Danke

+0

Die ID ist eine Zeichenfolge, nehme ich an? –

+0

Ja, es ist eine Zeichenfolge –

+0

Versuchen Sie die Antwort, die ich gab. –

Antwort

1

es am Frontend wie diese versuchen kann:

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

Verwenden body-parser am Knoten js Server andernfalls Sie nicht in der Lage sein, Parameter zu erhalten aus dem Anfragetext.

+0

Du hast Recht, ich importiere Body-Parser, und es funktioniert, danke :)! –

0

Sie diese

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

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

es funktioniert nicht .. Ich habe einen Fehler auf der Node-Konsole: "kann nicht lesen Property-ID von undefined" –

+0

Haben Sie bodyparser und Cors in Ihnen Express-App –

+0

Ich hatte keine bodyparser, ich importiere es und es funktioniert, Danke :) –

1

Sie sollten wahrscheinlich einen moderneren Ansatz wie FetchAPI verwenden. Verwenden Sie es mit Polyfill, weil es nicht in allen Browsern vollständig unterstützt wird. Mit holen Ihr Code wie folgt aussehen:

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 

}); 
Verwandte Themen