December 28, 2020
μ΄μ μλ μλ²κ° μ체 ν΄λΌμ΄μΈνΈλ₯Ό κ°μ§κ³ μμμ.
κ°κ°μ μ μ ν΄λΌμ΄μΈνΈκ° μλ²μμ λ΄λ €λ°μ ν΄λΌμ΄μΈνΈλ‘ ν΅μ νλ€κ³ νλ€. κ·Έ ν΄λΉ ν΄λΌμ΄μΈνΈμ λ°μ΄ν°λ₯Ό μ¬μ©μκ° μΌλ°©μ μΌλ‘ 보λ λ°©μμΌλ‘ μ§ννλ€.
μ¦, μλ²κ° λ΄λ €μ€ λ°μ΄ν°μ λν΄ μμ¬μ΄ μμ κ²μ΄λ€. same - origin μ΄κΈ° λλ¬Έμ κ΅³μ΄ μλ²λ μμ²μ λ§μ νμκ° μμλ€.
SPA λΌλ κ³ λνλ μΉ κΈ°μ μ΄ λ±μ₯νμκ³ μ΄μ κ°κ°μ μ μ (ν΄λΌμ΄μΈνΈ) μμ μ¬λ¬ κ³³μ μλ 리μμ€λ₯Ό νμ©ν νμκ° μκ²Όλ€.
μ°λ¦¬ μλ²μλ§ μμ²νλ κ² μλλΌ λ΄κ° λ§λ μ΄ν리μΌμ΄μ μμ μ νλΈλ κΉνλΈ κ°μ λ€λ₯Έ μλ²μ 리μμ€λ₯Ό μμ²νκ² λλ κ²½μ°κ° λ§μ΄ μκΈ°κ² λμλ€.
μ΄μ λ μ¦ same origin μ΄ μλλΌ cross origin μμ²μ ν΄μΌ νλ€.
Cross origin μμ 리μμ€ (μλ²μμ) λ₯Ό μμ²νμ¬ μ¬μ©νλ€.
μ νΈλΈμμ κΉνμΌλ‘, κΉνμμ μ νλΈ λ‘ μ¦, λ€λ₯Έ μλ²μ μμμ μμ²ν΄μ μ¬μ©νκΈ° μν΄ λ±μ₯ν κ°λ .
BUT λΈλΌμ°μ μμ ν¬λ‘μ€ λλ©μΈ μμ²μ κΈ°λ³Έμ μΌλ‘λ μ νλμ΄ μλ€.
μ? 보μμμ μ΄μ λ‘. μ΄λ€ μμ²μ μμ±ν μ§ μμ μκΈ° λλ¬Έμ..
κ°λ°μλ€μ΄ μμ²μ νμ μ’ νμ΄μ€ γ γ μμ²ν΄μ μ΄μ μλ²κ° Allow ν λ²μλ΄μμ Cross origin μμ² νμ©μ΄ κ°λ₯ν΄ μ‘λ€.
μ λ²μ μμ±ν λ΄ λΈλ‘κ·Έ κΈμ μ½μ΄λ³΄μ.
https://dev-seolleung2.netlify.app/development/CORS/
POST μμ²μ λ 릴 λ, κ·Έ μ μ OPTIONS λ©μλκ° λ°λ! preflight request λ₯Ό ν΅ν νκ°λ₯Ό λ°μ. OPTIONS μ λν μ μ μλ΅μ λ°μ.
μ΄ν POST μμ² νμ©, μλ΅ μ§ν.
https://developer.mozilla.org/ko/docs/Web/HTTP/CORS
const defaultCorsHeader = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Accept',
'Access-Control-Max-Age': 10,
}
λͺ¨λ λλ©μΈμ νμ©νλ€ (μμΌλμΉ΄λ), λ©μλλ μ κΈ° λͺ κΈ°λ μ λ€λ§ νμ©νλ€, ν€λμλ content-type κ³Ό accept λ§ μΈ μ μλ€.
preflight request λ 10μ΄ κΉμ§ νμ©λλ€. λΌλ μλ―Έμ΄λ€.