μΉ μ ν리μΌμ΄μ μμ ν΄λΌμ΄μΈνΈμ μλ² κ° λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λ, νΉν νμΌ μ λ‘λμ JSON λ°μ΄ν°λ₯Ό ν¨κ» μ²λ¦¬ν΄μΌ νλ κ²½μ°, μ¬λ°λ₯Έ Content-Type μ€μ μ΄ μ€μνλ€.
μ΅κ·Ό νλ‘μ νΈμμ FormDataλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μλ²λ‘ μ μ‘νλ μ€ HttpMediaTypeNotSupportedException: Content-Type 'application/octet-stream' is not supported μ€λ₯λ₯Ό λ§λ¬λ€.
μ΄ μ€λ₯λ ν΄λΌμ΄μΈνΈμμ 보λ΄λ μμ²μ Content-Typeμ΄ μλ²μμ μ§μνμ§ μλ νμμΌ λ λ°μνλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ ν΄λΌμ΄μΈνΈ μ½λμ μλ² κ°μ λ°μ΄ν° μ§λ ¬ν λ° μ μ‘ λ°©μμ μμ νλ€.
λ¬Έμ λ°μ
ν΄λΌμ΄μΈνΈμμ FormDataλ₯Ό μ¬μ©ν΄ λ°μ΄ν°λ₯Ό μ μ‘ν λ, κ°μ²΄ λ°μ΄ν°λ₯Ό μ§λ ¬ννμ§ μκ³ μΆκ°νκ±°λ, νμΌ λ°μ΄ν°λ₯Ό ν¨κ» μ²λ¦¬νλ©΄μ μ¬λ°λ₯Έ λ―Έλμ΄ νμ μ μ€μ νμ§ μμ λ¬Έμ κ° λ°μνλ€.
μλ²μμλ @RequestPartλ‘ MultipartFileκ³Ό JSON λ°μ΄ν°λ₯Ό μ²λ¦¬νλ € νμ§λ§, application/octet-streamκ³Ό κ°μ κΈ°λ³Έ λ°μ΄λ리 νμ μΌλ‘ μ μ‘λ λ°μ΄ν°κ° μ¬λ°λ₯΄κ² λ§€νλμ§ μμ HttpMediaTypeNotSupportedException μ€λ₯κ° λ°μνλ€.
μ΄κΈ° μ½λ
κΈ°μ‘΄ μ½λμμλ λ€μκ³Ό κ°μ΄ vo κ°μ²΄λ₯Ό κ·Έλλ‘ FormDataμ μΆκ°νκ³ μμλ€:
formData.append('vo', JSON.stringify(vo));
μ΄ λ°©μμ λ°μ΄ν° μ§λ ¬ν μ체λ μ¬λ°λ₯΄μ§λ§, μλ²κ° application/octet-stream ννμ λ°μ΄ν°λ‘ μΈμν΄ μ²λ¦¬νμ§ λͺ»νλ λ¬Έμ κ° μμλ€.
ν΄κ²° λ°©λ²
μ€λ₯λ₯Ό ν΄κ²°νκΈ° μν΄, vo κ°μ²΄λ₯Ό JSONμΌλ‘ μ§λ ¬νν ν, Blob κ°μ²΄λ‘ λ³ννμ¬ Content-Typeμ λͺ μμ μΌλ‘ application/jsonμΌλ‘ μ§μ νλ€. μ΄ν μ΄λ₯Ό FormDataμ μΆκ°νλ€:
const json = JSON.stringify(vo);
const blob = new Blob([json], { type: "application/json" });
formData.append("vo", blob);
μ½λ κ²°κ³Ό
μ΅μ’ μ μΌλ‘ μμ λ μ½λλ λ€μκ³Ό κ°λ€:
const formData = new FormData();
const json = JSON.stringify(vo);
const blob = new Blob([json], { type: "application/json" });
formData.append("vo", blob);
appendFileIfNeeded('images', postData.image, postData.prevImageId, formData);
appendFileIfNeeded('files', postData.file, postData.prevFileId, formData);
@RequestPartλ₯Ό ν΅ν΄ JSON λ°μ΄ν°μ νμΌ λ°μ΄ν°λ₯Ό λμμ λ§€νν μ μμλ€.
'π΅πππππππ > πππππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[React] Zustandλ‘ λ‘κ·ΈμΈ μν κ΄λ¦¬νκΈ°: μ½λ + κ°λ μ€λͺ (0) | 2025.04.10 |
---|---|
[REACT] Not Allowed to Load Local Resource μ€λ₯ ν΄κ²° λ° Apache HTTP Server μ€μ λ°©λ² (0) | 2024.11.22 |
μΉ μ ν리μΌμ΄μ μμ ν΄λΌμ΄μΈνΈμ μλ² κ° λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λ, νΉν νμΌ μ λ‘λμ JSON λ°μ΄ν°λ₯Ό ν¨κ» μ²λ¦¬ν΄μΌ νλ κ²½μ°, μ¬λ°λ₯Έ Content-Type μ€μ μ΄ μ€μνλ€.
μ΅κ·Ό νλ‘μ νΈμμ FormDataλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μλ²λ‘ μ μ‘νλ μ€ HttpMediaTypeNotSupportedException: Content-Type 'application/octet-stream' is not supported μ€λ₯λ₯Ό λ§λ¬λ€.
μ΄ μ€λ₯λ ν΄λΌμ΄μΈνΈμμ 보λ΄λ μμ²μ Content-Typeμ΄ μλ²μμ μ§μνμ§ μλ νμμΌ λ λ°μνλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ ν΄λΌμ΄μΈνΈ μ½λμ μλ² κ°μ λ°μ΄ν° μ§λ ¬ν λ° μ μ‘ λ°©μμ μμ νλ€.
λ¬Έμ λ°μ
ν΄λΌμ΄μΈνΈμμ FormDataλ₯Ό μ¬μ©ν΄ λ°μ΄ν°λ₯Ό μ μ‘ν λ, κ°μ²΄ λ°μ΄ν°λ₯Ό μ§λ ¬ννμ§ μκ³ μΆκ°νκ±°λ, νμΌ λ°μ΄ν°λ₯Ό ν¨κ» μ²λ¦¬νλ©΄μ μ¬λ°λ₯Έ λ―Έλμ΄ νμ μ μ€μ νμ§ μμ λ¬Έμ κ° λ°μνλ€.
μλ²μμλ @RequestPartλ‘ MultipartFileκ³Ό JSON λ°μ΄ν°λ₯Ό μ²λ¦¬νλ € νμ§λ§, application/octet-streamκ³Ό κ°μ κΈ°λ³Έ λ°μ΄λ리 νμ μΌλ‘ μ μ‘λ λ°μ΄ν°κ° μ¬λ°λ₯΄κ² λ§€νλμ§ μμ HttpMediaTypeNotSupportedException μ€λ₯κ° λ°μνλ€.
μ΄κΈ° μ½λ
κΈ°μ‘΄ μ½λμμλ λ€μκ³Ό κ°μ΄ vo κ°μ²΄λ₯Ό κ·Έλλ‘ FormDataμ μΆκ°νκ³ μμλ€:
formData.append('vo', JSON.stringify(vo));
μ΄ λ°©μμ λ°μ΄ν° μ§λ ¬ν μ체λ μ¬λ°λ₯΄μ§λ§, μλ²κ° application/octet-stream ννμ λ°μ΄ν°λ‘ μΈμν΄ μ²λ¦¬νμ§ λͺ»νλ λ¬Έμ κ° μμλ€.
ν΄κ²° λ°©λ²
μ€λ₯λ₯Ό ν΄κ²°νκΈ° μν΄, vo κ°μ²΄λ₯Ό JSONμΌλ‘ μ§λ ¬νν ν, Blob κ°μ²΄λ‘ λ³ννμ¬ Content-Typeμ λͺ μμ μΌλ‘ application/jsonμΌλ‘ μ§μ νλ€. μ΄ν μ΄λ₯Ό FormDataμ μΆκ°νλ€:
const json = JSON.stringify(vo);
const blob = new Blob([json], { type: "application/json" });
formData.append("vo", blob);
μ½λ κ²°κ³Ό
μ΅μ’ μ μΌλ‘ μμ λ μ½λλ λ€μκ³Ό κ°λ€:
const formData = new FormData();
const json = JSON.stringify(vo);
const blob = new Blob([json], { type: "application/json" });
formData.append("vo", blob);
appendFileIfNeeded('images', postData.image, postData.prevImageId, formData);
appendFileIfNeeded('files', postData.file, postData.prevFileId, formData);
@RequestPartλ₯Ό ν΅ν΄ JSON λ°μ΄ν°μ νμΌ λ°μ΄ν°λ₯Ό λμμ λ§€νν μ μμλ€.
'π΅πππππππ > πππππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[React] Zustandλ‘ λ‘κ·ΈμΈ μν κ΄λ¦¬νκΈ°: μ½λ + κ°λ μ€λͺ (0) | 2025.04.10 |
---|---|
[REACT] Not Allowed to Load Local Resource μ€λ₯ ν΄κ²° λ° Apache HTTP Server μ€μ λ°©λ² (0) | 2024.11.22 |