Last updated
Last updated
๊ต์ฐจ ์ถ์ฒ(Cross Origin) ๊ฐ ๋ฆฌ์์ค ๊ณต์ (Resource Sharing)์ ์ฝ์
์๋ก ๋ค๋ฅธ Origin์ ๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๊ณ ์ ํ ๋ ์ค์ํด์ผ ํ ๊ท์ฝ๋ค์ CORS Policy
๋ผ๊ณ ํจ
ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ (OPTIONS) ์ผ๋ก ์ง์ํ๋ ๋ฉ์๋, ํค๋ ์ ๋ณด ํ์ธ
์ธ ๊ฒฝ์ฐ์๋ ์๋ต๋จ
์๋๋ ์ด OPTIONS ์์ฒญ์์ ์ฌ์ฉ๋๋ ํค๋๋ค
Access-Control-Request-Method
์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ์๋์ธ์ง๋ฅผ ์๋ต๋ฐ๊ธฐ ์ํ ํค๋
Access-Control-Request-Headers
์ฌ์ฉ ๊ฐ๋ฅํ ํค๋์ธ์ง๋ฅผ ์๋ต๋ฐ๊ธฐ ์ํ ํค๋
ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ์ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ์์ฒญ ์ ๋ฌ
์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌํํ ๋์๋ ์ค์ ์์ฒญ๋ง์ ์์ฑํ๋ฉฐ, Fetch
๋ฑ์ ์์ฒญ ๋ฉ์๋๊ฐ ํ๋ฆฌํ๋ผ์ดํธ๋ฅผ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐ
ํ๋ฆฌํ๋ผ์ดํธ(OPTION) ์์ฒญ์ ๋ํด์๋ ๋ค์์ ํค๋๋ฅผ ํตํด ์ง์ํ๋ ๋ฉ์๋, ํค๋ ์ ๋ณด ์ ๊ณต
Allows
๋๋ Access-Control-Allow-Methods
Allow-Headers
๋๋ Access-Control-Allow-Headers
ํ์ฉ๋ ํด๋ผ์ด์ธํธ์ธ์ง ๊ฒ์ฆ
ํ์ฉ๋ ํค๋๋ผ๋ฉด Access-Control-Allow-Origin
ํค๋๋ฅผ ํฌํจํ ์๋ต ์ ๊ณต
ํ๋ฆฌํ๋ผ์ดํธ, ์ค์ ์์ฒญ ๋ชจ๋ ์ด ๊ณผ์ (ํค๋)์ด ์๊ตฌ๋จ
ํด๋ผ์ด์ธํธ โ ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ
์๋ฒ โ ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ์ ๋ํ ์๋ต (์ฌ์ฉ ๊ฐ๋ฅ ๋ฉ์๋, ํค๋ ์ ๋ณด ํฌํจ)
ํด๋ผ์ด์ธํธ โ ์๋ฒ์ ์๋ต ๊ธฐ๋ฐ์ผ๋ก ์ค์ ์์ฒญ ๋ฉ์์ง ์์ฑ
์๋ฒ โ ์ค์ ์์ฒญ์ ๋ํ ์๋ต
ํด๋ผ์ด์ธํธ โ withCredentials: true
์ด๊ฑธ ํฌํจํด์ผ ํค๋์ ์ฟ ํค ์ ๋ณด๋ฅผ ๋ฃ์
์๋ฒ โ Access-Control-Allow-Credentials: true
๋ธ๋ผ์ฐ์ ๋ ์ธ์ฆ ์์ฒญ์ ๋ํ ์๋ต ํค๋์ ์ด๊ฒ ์์ผ๋ฉด ํ๊ธฐ
์๋ฒ์์ ์ด ํค๋๋ฅผ ํฌํจํ๊ณ ์ ํ๋ฉด Allow-Origin
์ ์์ผ๋์นด๋๋ก ์ค์ ๋ถ๊ฐ
CORS๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด์กฐ๊ฑด ์์ฒญ์ origin ์ ๋ณด
๊ฐ ์์ด์ผ ํ์ฉํด์ค ์ ์์
๋ฆฌ์์ค๋ฅผ ์์ฒญํ ์ค๋ฆฌ์ง์ด ํ์ฉ๋ ์ค๋ฆฌ์ง์ธ์ง ์๋์ง ํ๋ณํด์ผ ํ๋ฏ๋ก ๋น์ฐํจ
์ธ ๊ฒฝ์ฐ์๋ ์๋ต๋จ (์ค์ํ๋ฏ๋ก ํ ๋ฒ ๋ ๊ฐ์กฐ)
[MDN]