node.js 에서 이미지 업로드 모듈 multiparty 사용할 때 ajax 에러

조회수 2362회

조대협님 블로그 http://bcho.tistory.com/1078

여기서 multiparty 모듈 사용하여 이미지 업로드 공부하는데,

예제대로 하면 문제 없이 잘 되는데,

ajax 방식

$.ajax({
    type: "post",
    url: "/users/upload",
    data: $("#uploadForm").serialize(),
    // dataType: "json",
    // contentType: "application/x-www-form-urlencoded; charset=utf-8",
    success: function (data) {
      console.log('success: ', data);
    },
    error: function (jqXHR, textStatus, errorThrown) {
      console.log('jqXHR: ', jqXHR.status);
      console.log('message: ', jqXHR.responseText);
      console.log('error: ', errorThrown);
    }
});

으로 하니

Error: unsupported content-type
    at Form.parse (/Users/hanman/Documents/workspace/prj_test/node_modules/multiparty/index.js:160:21)
    at /Users/hanman/Documents/workspace/prj_test/routes/users.js:346:12
    at Layer.handle [as handle_request] (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/layer.js:95:5)
    at /Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:271:10)
    at Function.handle (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:176:3)
    at router (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:46:12)
    at Layer.handle [as handle_request] (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:312:13)
    at /Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/hanman/Documents/workspace/prj_test/node_modules/express/lib/router/index.js:271:10)

에러가 발생합니다..

form 직접 전송과 ajax 의 전송과 차이가 무엇이 있다고... ㅠ

도움 주실 수 있는 분 계신가요? ㅜㅜ

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    form에 enctype="multipart/form-data" 설정 하셨나요?

    그냥 보기엔 설정안해서 unsupported content-type 오류인것 같아요

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)