[英]Enabling CORS On Individual Endpoints
我有一個 rest API 有許多端點來獲取和發布數據。 我想知道是否可以更改特定端點允許與之交互的來源。 下面你可以看到我在整個應用程序中啟用了標准 CORS:
app.use((req, res, next) => {
res.header('Access-Control-Allow-Headers', '*');
res.header('Access-Control-Allow-Origin', '*');
next();
});
但我希望能夠更改各個端點的 CORS 屬性:
app.get('/api/blocks/length', (req, res) => {
res.json(blockchain.chain.length);
});
如何才能做到這一點? 一些洞察力對我來說意味着世界。
您傳遞給app.use
的 function 是一個中間件 function。 讓我們把它分解成一口大小的組件。
const cors_middleware = (req, res, next) => {
res.header('Access-Control-Allow-Headers', '*');
res.header('Access-Control-Allow-Origin', '*');
next();
};
(雖然這是車輪改造,你可以使用 NPM 的cors
模塊)
然后你會得到你原來的效果,如下所示:
app.use(cors_middleware);
現在看一下get
的定義:
app.get(path, callback [, callback...])
它需要一個或多個回調的列表。
所以你可以把你的中間件放在那里:
app.get('/api/blocks/length', cors_middleware, (req, res) => {
res.json(blockchain.chain.length);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.