Ich versuche, einige Daten zu dem Knoten Server zu schreiben, aber ich habe ein Problem:Angular http.post als Optionen Methode Anfrage
postEmployeeForm(employee: Employee):Observable<any> {
let body = JSON.stringify(employee);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post('http://localhost:3100/postemployee', body, options)
.map(this.extractData)
.catch(this.handleError);
}
Dies ist mein Beitrag Antrag in Registerkarte Netzwerk ich dies als Optionen sehen Methode auf dem Server erwarte ich eine Post-Anfrage.
Wenn ich Optionen aus http.post weglassen, dann bekomme ich Post-Anfrage auf dem Server, aber dann habe ich einen Fehler über den unerwarteten Inhaltstyp.
postEmployeeForm(employee: Employee):Observable<any> {
let body = JSON.stringify(employee);
return this.http.post('http://localhost:3100/postemployee', body)
.map(this.extractData)
.catch(this.handleError);
}
Ist das erwartet Verhalten oder ich mache etwas falsch mit Post. Ich fand diesen Code auf offiziellen Winkelführung: server-communication Wie mit dieser Situation umzugehen, muss ich etwas auf der Clientseite ändern oder sollte ich das auf der Serverseite behandeln?
EDIT:
Das ist mein Server-Code:
var http = require('http');
var formidable = require("formidable");
var util = require('util');
var server = http.createServer(function(req, res) {
res.setHeader('Access-Control-Allow-Origin','*');
res.setHeader('Access-Control-Allow-Headers','Origin, X-Requested-With, Content-Type, Accept');
if(req.method.toLowerCase() == 'post') {
console.log("Get request!");
processForm(req,res);
return;
}
});
function processForm(req,res) {
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields) {
res.writeHead(200, {
'content-type': 'application/json'
});
res.end(util.inspect({
fields: fields
}));
console.log('posted fields:\n');
console.log(util.inspect({
fields: fields
}));
});
}
var port = 3100;
server.listen(port,'localhost');
console.log("server listening on port " + port);
Was sind die Header mit '{Header: Header} gesetzt wird'? –
@GrishaLevit {'Content-Type': 'application/json'} – freshbm
Was ist das Problem mit dem ersten Block Ihres Codes? Es initiiert keine Post-Anfrage? –