๐ฏ ๋ชฉํ : CORS์ ๊ธฐ๋ณธ ๊ฐ๋ ์ดํดย
https://sussa1933.tistory.com
/manage/newpost/์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด https://foo.example ์์ POST ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์น ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋๋ค๊ณ ํ๋ค๋ฉด,
POST ์์ฒญ์ ํ๊ธฐ์ OPTIONS ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ ๋ฉ์๋, Content-Type๋ฑ ์์ฒญ ์ ๋ณด๋ฅผ ๋ฉ์ธ์ง์ ๋ด์ ์ฌ์ ์์ฒญ์ ํ๋ค.
OPTIONS ์์ฒญ์ ๋ฐ์ ์๋ฒ์์๋ ์์ฒญ ์ ๋ณด์ ๋ฐ๋ฅธ ๋ฆฌ์์ค ์ ๊ทผ์ ํ์ฉํ๋ Access-Control-Allow-Origin๊ณผ Acces-Control-Allow-Methods ๋ฑ์ ์ ๋ณด๋ฅผ ์๋ตํด์ค๋ค.
๋ธ๋ผ์ฐ์ ๋ ์๋ต์ ํ์ธ ํ ํ ์ค์ ์์ฒญํ๊ณ ์ํ๋ POST ์์ฒญ์ ํ๊ฒ ๋๋ค.
์ ๊ทธ๋ฆผ์ ์ ์์ ์ธ ์์ฒญ๊ณผ ์๋ต์ด์ง๋ง,
๋ง์ฝ ์๋ฒ์์ ์ฌ์ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก Access-Control-Allow-Origin์ ๊ฐ์ด ๋ค๋ฅธ ์ถ์ฒ๋ฅผ ๊ฐ๋ฆฌํจ๋ค๋ฉด, ๊ฐ๋ฆฌํค๊ณ ์๋ ์ถ์ฒ๋ง ๋ฆฌ์์ค ์ ๊ทผ์ ํ์ฉํ๊ณ ์์ผ๋ฏ๋ก, ์ฌ์ ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐ์ ๋ธ๋ผ์ฐ์ ๋ CORS ์๋ฌ๋ฅผ ๋ฐ์ํ๊ฒ ๋ ๊ฒ์ด๋ค.
์ฌ์ ์์ฒญ์ ์๋ต ์ฑ๊ณต ์ฌ๋ถ์ ์๊ด ์์ด CORS ์๋ฌ๊ฐ ๋ฐ์ํ ์๋ ์๋ค. ์ด๋๋ CORS ์๋ฌ๊ฐ ๋ฐ์ํ ์์ ์ด ์ฌ์ ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐ๊ณ ๋ ์งํ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ํ๋ฆฌํ๋ผ์ดํธ ์์ฒญ์์ ๊ฒ์ฌํ ์ ๋ณด์์ ์ถ๊ฐ๋ ์ ๋ณด๊ฐ ์๊ฑฐ๋ ๋ฉ์ธ ์์ฒญ์ ์ถ์ฒ๊ฐ ๋ฌ๋ผ ์ก๊ธฐ ๋๋ฌธ์ ๋ณธ ์์ฒญ์์ CORS ์๋ฌ๊ฐ ๋ฐ์ํ ์๋ ์๋ค.
๊ฐ ์์ฒญ, ์๋ต ๋ฉ์ธ์ง์์์ ํญ๋ชฉ๋ค์ ์ ๋ฆฌํ์๋ฉด,
๋ฉ์๋๋ GET, HEAD, POST ์ค ์์๋ง ํ์ฉ๋๋ค.
Accept, Accept-Language, Content-Language, Content-Type, DPR, Downlink, Save-Data, Viewport-Width, Width๋ฅผ ์ ์ธํ ํค๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ค.
Content-Type๋ application/x-www-form-urlencoded, multipart/form-data, text/plain๋ง ํ์ฉ๋๋ค
Reference