ich nicht herausfinden kann, warum ich nicht die Formulareingabewerte in node.js von einem Jquery Ajax-Aufruf gesendet abrufen kann:node.js Abrufen von Werten Formulareingabe von Client gesendet
hierwird die Client-Seite jQuery Code:
$('#send-button').click(function(event) {
event.preventDefault();
var str = $('#form-contact').serialize();
$.ajax({
type: 'POST',
url: "contact",
data: str,
success: function(msg) {
....
},
error: function(XMLHttpRequest, textStatus) {
....
}
})
jetzt in node.js i versuchen, die Daten senden, indem Sie die jQuery-ajax-Anforderung abzurufen:
var sys = require("sys"),
http = require("http"),
url = require("url"),
path = require("path"),
qs = require('querystring'),
fs = require("fs"),
var server = http.createServer(function(request, response) {
.....
path.exists(filename, function(exists) {
if(!exists) {
if (paramUri == "/contact") {
if (request.method == 'POST') {
var body = '';
request.on('data', function(chunk) {
body += chunk;
});
request.on('end', function() {
console.log(body);
})
}
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('worked');
return;
}
response.writeHead(404, {"Content-Type": "text/plain"});
response.write("404 Not Found\n");
response.end();
return;
}
......
});
})
server.listen(8080);
aber die request.on ('Daten') und request.on (‘ Ende ') werden nie aufgerufen. Ich verwende node.js -v 0.2.6
ich an nichts denken kann, dass diese aus Blick auf dem Code brechen würde, funktioniert die Antwort richtig funktioniert ? Haben Sie überprüft, ob die Listener tatsächlich hinzugefügt wurden? Wäre toll, wenn Sie uns mehr Informationen geben oder den vollständigen Code veröffentlichen könnten, damit wir die Dinge testen können. PS: Sie haben einen sehr inkonsistenten Programmierstil. –
BTW, die Kennung 'XMLHttpRequest' ist bereits vergeben (in den Browsern). Verwenden Sie es nicht als Parametername. Verwenden Sie 'xhr' stattdessen (zum Beispiel) –
@Ivo ich interessiere mich nicht für den Kodierungsstil jetzt, ich experimentiere gerade mit node.js und versuche, mein Problem zu lösen. Übrigens stammt dieser Code hauptsächlich von einem Tutorial. @response ja es funktioniert, Client erhält die Zeichenfolge "bearbeitet" – user4479145