๐ค ์์งlog ๐ค
[NodeJS] CORS Error ํด๊ฒฐํ๊ธฐ ๋ณธ๋ฌธ
React๋ก ๋ง๋ ํ๋ก ํธ์์ axios๋ฅผ ํตํด nodejs๋ก ๋ง๋ api๋ฅผ ์์ฒญํ๋๋ CORS ์๋ฌ๊ฐ ๊ณ์ ๋ฐ์ํ๋ค.
๋ถ๋ช url๋ก ๋ค์ด๊ฐ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์์ค๋๋ฐ, ์ axios๋ฅผ ํตํด์ ์์ฒญ์ ํ๊ฒ ๋๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋์ง ..๐คฆ๐ปโ๏ธ
Access to fetch at 'http://localhost:8080/test' from orgin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response servers your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
port 8080์ผ๋ก ์์ฒญํ๋๋ฐ ์๊พธ ๋ฆฌ์กํธ์ 3000์ผ๋ก ์ก์์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ฑฐ ๊ฐ์๋ค.
๐ ํด๊ฒฐ๋ฐฉ๋ฒ
ํ๋ก ํธ์๋์์ proxy ์ค์ ์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ง๋ง,
์ข ๋ ์์ ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐฑ์๋์์ response header์ Access-Control-Allow-Origin ์ค์ ์ ํ๊ธฐ๋ก ํ๋ค.
โ ํ์ํ api์ res.header("Access-Control-Allow-Origin", "*"); ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋์ง๋ง, ๋ชจ๋ api์ ๋ํด์ ์ค์ ํ๊ณ ์ถ์ผ๋ฉด ๋ชจ๋์ ์ค์นํด์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๐ ๋ชจ๋ ์ค์นํด์ ํด๊ฒฐํ๊ธฐ
- ํด๋น ํ๋ก์ ํธ ํด๋๋ก ์ด๋ํด์ ์ปค๋งจ๋ ์คํ
- app.js(์์ ์ด ์ฌ์ฉํ๋ ์์ ๋จ๊ณ์ ํ์ผ)๋ก ๋ค์ด๊ฐ์ ์ปค๋งจ๋ ์คํ
npm install --save cors
- app.js(์์ ์ด ์ฌ์ฉํ๋ ์์ ๋จ๊ณ์ ํ์ผ)๋ก ๋ค์ด๊ฐ์
const cors = require('cors')
let corsOptions = {
origin: '*', // ์ถ์ฒ ํ์ฉ ์ต์
credential: true, // ์ฌ์ฉ์ ์ธ์ฆ์ด ํ์ํ ๋ฆฌ์์ค(์ฟ ํค ๋ฑ) ์ ๊ทผ
}
app.use(cors(corsOptions))
๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.