CORS?
CORS(Cross Origin Resource Sharing)
λ μΆκ°μ μΈ HTTP ν€λλ₯Ό μ¬μ©ν΄μ
ν μΆμ²μμ μ€ν μ€μΈ μΉ μ ν리μΌμ΄μ
μ΄ λ€λ₯Έ μΆμ²μ μμμ μ κ·Όν μ μλ κΆνμ κ΄λ¦¬νλ 체μ μ
λλ€.
μ¦ μμ κ°μ΄ domain-a.com
μμ κ°μ μ£Όμμ domain-a.com
μ μ κ·Όνμ¬ μμμ μμ²ν λλ λ¬Έμ κ° λ°μνμ§ μμ§λ§,domain-b.com
μ μμ²ν κ²½μ° λλ©μΈμ΄ λ€λ₯΄κΈ° λλ¬Έμ 보μμμ μ΄μ λ‘ μ νλ©λλ€.
λ§μ½ μλ²μμ μ¬λ°λ₯Έ CORS ν€λλ₯Ό ν¬ν¨ν μλ΅μ λ°ννμ§ μμΌλ©΄ μμ κ°μ μ€λ₯κ° λ°μνκ² λ©λλ€.
μ μμμμλ μμμ κ°μ§κ³ μλ μλ²λ¨μ λλ©μΈμΈ http://127.0.0.1:3000
κ³Ό μμμ μμ²ν http://localhost:8080
μ μΆμ²κ° λ€λ₯΄κΈ° λλ¬Έμ λ°μν μ€λ₯μ
λλ€.
Node.jsμμ CORS μ€μ
CORS ν¨ν€μ§ μ€μΉ
μ°μ CORS λ―Έλ€μ¨μ΄λ₯Ό μ¬μ©νκΈ° μν΄ ν¨ν€μ§λ₯Ό μ€μΉν©λλ€.
$npm i cors
λͺ¨λ CORS Request νμ©νκΈ°
λͺ¨λ μμ²μ νμ©ν κ²½μ° λ€μκ³Ό κ°μ΄ κ°λ¨νκ² λ―Έλ€μ¨μ΄λ₯Ό λΆλ¬μμ μΆκ°ν΄μ£Όλ κ²μΌλ‘ ν΄κ²°ν μ μμ΅λλ€.
app.js
const express = require("express");
const cors = require("cors");
const app = express();
app.use(cors()); // CORS λ―Έλ€μ¨μ΄ λ±λ‘
// ...
Whitelistλ‘ νΉμ μ£Όμλ§ νμ©νκΈ°
λͺ¨λ CORS μμ²μ νμ©ν΄μ£Όλ κ²μ΄ λλ‘λ 보μμμ λ¬Έμ λ‘ μ΄μ΄μ§ μ μμ΅λλ€.
λ§μ½ νΉμ νΈμ€νΈλ§ CORS μμ²μ νμ©ν΄μ£Όκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ whitelist
λ₯Ό μΆκ°ν΄μ κ²μ¦νλ λ°©λ²μ΄ μμ΅λλ€.
μμ²μ νμ©ν μ£Όμλ₯Ό λ΄μ whitelist
λ₯Ό μμ±ν΄μ£Όκ³ μμ² HTTP ν€λμ Origin
μμ±μ νμΈν΄μ
μΌμΉνλ νλͺ©μ΄ μμ κ²½μ° νμ©ν΄μ£Όλ λ°©μμ
λλ€.
app.js
const express = require("express");
const cors = require("cors");
const app = express();
const whitelist = ["http://localhost:8080"];
const corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
callback(null, true);
} else {
callback(new Error("Not Allowed Origin!"));
}
},
};
app.use(cors(corsOptions)); // μ΅μ
μ μΆκ°ν CORS λ―Έλ€μ¨μ΄ μΆκ°
// ...
μ°Έκ³ μλ£
'π¨βπ» web.dev > node' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Node.js μλ²μ Redis μ μ©νκΈ° (1) | 2022.05.28 |
---|---|
multer λͺ¨λμ νμ©ν μ΄λ―Έμ§ νμΌ μ λ‘λ νν λ¦¬μΌ (2) | 2021.03.05 |
Node.jsμ MySQLλ₯Ό μ΄μ©ν κ²μκΈ μμ±νκΈ° νν λ¦¬μΌ (0) | 2021.03.05 |
Sequelize ORMμμ migration νμ©νκΈ° (0) | 2021.03.03 |
Node.js νκ²½μμ λ€μ΄λ² Open API νμ©νκΈ° (0) | 2021.03.02 |
π¬ λκΈ