Node.js
Node.js med CORS
Sök…
Aktivera CORS i express.js
Eftersom node.js ofta används för att bygga API, kan korrekt CORS-inställning vara en livräddare om du vill kunna begära API från olika domäner.
I exemplet ställer vi in det för den bredare konfigurationen (godkänn alla typer av förfrågningar från valfri domän.
I din server.js efter att ha initialiserat express:
// Create express server
const app = express();
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
// authorized headers for preflight requests
// https://developer.mozilla.org/en-US/docs/Glossary/preflight_request
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
app.options('*', (req, res) => {
// allowed XHR methods
res.header('Access-Control-Allow-Methods', 'GET, PATCH, PUT, POST, DELETE, OPTIONS');
res.send();
});
});
Vanligtvis körs noden bakom en proxy på produktionsservrar. Därför kommer den omvända proxyservern (t.ex. Apache eller Nginx) att vara ansvarig för CORS-konfigurationen.
För att enkelt anpassa detta scenario är det möjligt att endast aktivera node.js CORS när det är under utveckling.
Detta görs enkelt genom att kontrollera NODE_ENV
:
const app = express();
if (process.env.NODE_ENV === 'development') {
// CORS settings
}
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow