簡體   English   中英

在各個端點上啟用 CORS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM