Node.js Ajax senden und empfangen von Json
Mit Ajax, ich bin versucht, senden Sie einfach die Json-Daten zu einem node-server keine Verarbeitung beteiligt, nur Warnungen, wenn es gesendet wird und die Alarmierung, wenn es empfangen:
Dies ist meine html5: Einfache Schaltfläche mit einem onclick-Funktion, um die trigger-Funktion verwenden der ajax-Aufruf
<!DOCTYPE HTML>
<html>
<head>
<script>
function send()
{
//alert("Hello World");
$.ajax
({
type: "post",
url: "http://localhost:8000",
dataType: "json",
contentType: "application/json; charset=UTF-8",
data: JSON.stringify({name: "Dennis", address: {city: "Dub", country: "IE"}})
}).done(function ( data ) {alert("ajax callback response:" + data);
});
</script>
</head>
<body>
<button onclick="send()">Click Me!</button>
</body>
</html>
Dies ist ein Teil von mein-node-server: Für einen server erstellen und hören für bestimmte Aktionen
var port = 8000;
var server = http.createServer();
server.on('request', request);
server.listen(port);
function request(request, response)
{
var store = '';
response.writeHead(200, {"Content-Type": "text/json"});
request.on('data', function(data)
{
store += data;
});
request.on('end', function()
{
store = JSON.parse(store);
console.log(store);
response.end(store);
});
}
Kein Alert ausgelöst wird, so glaube ich nicht, das ajax wird versucht, die Informationen senden.
- Öffnen Sie Ihre Konsole, sehen Sie irgendwelche Fehler?
- Öffnen Sie Ihre Entwickler-tools Net-Registerkarte sehen Sie die Anfrage, die Sie erwarten, und die Antwort, die Sie erwarten?
- Warum erzählst du jQuery zu erwarten JSON-wenn Sie text/plain content-type? Warum sind Sie senden eine 200-Antwort mit keine Antwort Körper?
- ok ich verstehe, ich mache das falsch! jetzt Ihre die besagt, dass meine schicken, ist nicht referenzierte
- Fügen Sie Ihre JS in jshint.com (aber ich hätte erwartet, dass der Fehler in der JS-Konsole, wenn das Dokument geladen ist).
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen, diese auf der server-Seite:
sind und dieser auf der client-Seite:
Hoffe, das funktioniert für Sie
Können Sie nicht verwenden
response.write()
oderresponse.end()
mit einem einfachen javascript-Objekt, können Sie nur schreiben, Puffer oder strings.Also, was Sie tun müssen, ist stringify das Objekt zuerst. Ändern Sie entweder die
response.end(store);
zuresponse.end(JSON.stringify(store));
oder nichtstore = JSON.parse(store);
in den ersten Platz (es sei denn, Sie es tun zu validieren JSON -- und wenn es das war, dann sollten Sie wickeln Sie es in ein try-catch-weilJSON.parse()
werfen auf parse-Fehler).