Node.js CORS setting
Express 서버를 사용할 경우 cors 미들웨어를 이용해 간단하게 CORS 설정을 할 수 있다.
모든 요청에 대한 CORS 허용 설정
var express = require("express")
var cors = require("cors")
var app = express()
app.use(cors())
app.get("/products/:id", function (req, res, next) {
res.json({ msg: "This is CORS-enabled for all origins!" })
})
app.listen(80, function () {
console.log("CORS-enabled web server listening on port 80")
})
위와 같이 설정할 경우 로컬환경에서 테스트용 서버를 띄우면 localhost
로는 접근이 안 되는 문제가 있다.
이럴 경우 그냥 아래와 같이 localhost 를 whitelist에 추가할 수 있다.
const whitelist = [
"http://localhost:3000",
"https://sharelink-frontend.appspot.com",
"http://sharelink-frontend.appspot.com",
]
var corsOptions = {
origin: function (origin, callback) {
console.log("@@@ " + origin)
if (whitelist.indexOf(origin) >= 0 || !origin) {
callback(null, true)
} else {
callback(new Error("Not allowed by CORS"))
}
},
}
app.use(cors(corsOptions))