Ich versuche params über XMLHttpRequest passieren und erhalten ‚undefined'-XMLHttpRequest GET in undefined Anfrage params NodeJS api
Auftraggeber:
var xj = new XMLHttpRequest();
var params = JSON.stringify({
PreviousTab: "cnn.com",
CurrentTab: "bbc.com"
});
xj.open("GET", "http://localhost:8080/api/traceTabs", true);
xj.setRequestHeader("Content-Type", "application/json");
xj.setRequestHeader ("Accept", "application/json");
xj.send(params);
Server (Node.js):
app.get('/api/traceTabs', function (req, res) {
console.log('change url from ' + req.body.PreviousTab +
' to ' + req.body.CurrentTab); // return 'undefined'
});
server.js Config (Node.js):
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var port = process.env.PORT || 8080;
app.use(bodyParser.json());
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(methodOverride('X-HTTP-Method-Override'));
app.use(express.static(__dirname + '/public'));
require('./app/routes')(app);
app.listen(port);
console.log('Listen to port ' + port);
exports = module.exports = app;
Alle Optionen, die ich versucht habe, die params zu bekommen zurückkehren 'undefined':
req.body.PreviousTab/req.param ('PreviousTab') und so weiter.
Kann jemand helfen?
können Sie die Middleware verwandte Server-Seite Code hinzufügen – Stamos
Sie müssen POST oder PUT für params gesendet werden - überprüfen Sie Ihre Browser-Entwickler-Tools Registerkarte Netzwerke, sehen Sie keine params in der Anfrage gesendet –
Definition sehen von XM LHttpRequest send() -> https://xhr.spec.whatwg.org/#the-send()-method - um genauer zu sein für meinen vorherigen Kommentar, für GET/HEAD Anfragen, wird send body auf null gesetzt - so PUT/POST-Methoden sind nicht die einzigen Methoden, die Sie mit einem Körper senden können - obwohl sie am häufigsten sind –