Ich benutze CORS https://www.npmjs.com/package/cors zu erlauben whitedomain
Liste.Node Express Cors und Routen
var whitelist = ['http://example1.com', 'http://example2.com'];
var corsOptions = {
origin: function(origin, callback){
var originIsWhitelisted = whitelist.indexOf(origin) !== -1;
callback(null, originIsWhitelisted);
}
};
app.post('/products/:id', cors(corsOptions), function (req, res, next) {
console.log(0);
res.json({ msg: 'This is CORS-enabled for a whitelisted domain.' });
});
Bei non whitedomain
der Server No 'Access-Control-Allow-Origin'
liefert was in Ordnung ist, aber zur gleichen Zeit kann ich auf Debug sehen, dass die Linien res.json({ msg: 'This is CORS-enabled for a whitelisted domain.' });
und console.log(0);
noch ausgeführt werden - console.log(0);
0
in der Konsole auf Server-Seite gedruckt, etwas, das ich in diesem Fall nicht.
kann also sagen, wenn auf Datenbank krümmt:
app.post('/products/:id', cors(corsOptions), function (req, res, next) {
writeToDatabase();
res.json({ msg: 'This is CORS-enabled for a whitelisted domain.' });
});
Auf diese Weise writeToDatabase();
wird immer dann ausgeführt werden. Aber ich möchte das vermeiden, weil ich im Fall von non whitelisted
Domain keine Sachen in die Datenbank schreiben muss.
Irgendwelche Gedanken?
Sie können das machen ** ** HTTP Anfrage ** ** Preflight, indem Sie eine benutzerdefinierte Hinzufügen Anfrage-Header verweisen [hier] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests). Auf diese Weise wird die folgende ** Route ** nicht an erster Stelle ausgeführt, wenn der Ursprung nicht erlaubt ist. Wie es zuerst sendet ** OPTIONS ** Anfrage, die die CORS überprüft und sendet dann die POST-Anfrage. – Nivesh