pcwu's TIL Notes


[Node.js] 如何在 Node.js 設定 CORS

現在架大型網站經常是前後端拆開在不同 server,如此前端在 ajax 時就需要特別注意,因為像 Express 預設就會是 mode: no-cors 非同網域不能獲取資源。

Express 官方自己出了一個套件 cors 方便大家在 Node.js 上設定 CORS

cors 的預設為全開放:

{
  "origin": "*",
  "methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
  "preflightContinue": false,
  "optionsSuccessStatus": 204
}
var express = require('express');
var cors = require('cors');
var app = express();

app.use(cors());

如果需要設定的話:

const corsOptions = {
  origin: [
    'http://www.example.com',
    'http://localhost:8080',
  ],
  methods: 'GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS',
  allowedHeaders: ['Content-Type', 'Authorization'],
};

app.use(cors(corsOptions));

筆記一下,不然每次都要從舊的程式碼複製。

Reference