포럼
파일 ajax로 post로 파일 업로드 후 json으로 요청결과 받는 방법 문의
2012.07.16 00:47
ajax로 폼 데이터를 post로 파일역시 본문에 포함시켜서 전송시키는데 응답이 html 마크업이 오네요.
요청은 이런식으로 해서 jquery 폼 플러그인을 사용해서 post로 요청 보낼때 본문에 파일까지 포함시킵니다.
<form id='uploadFile' action="/animal/" method="post" enctype='multipart/form-data' >
<input type='hidden' name='module' value='file' />
<input type='hidden' name='act' value='procFileUploadWithoutEditor' />
<input type='hidden' name='upload_target_srl' value='106' />
<input type='hidden' name='manual_insert' value='true' />
<input type='file' name='Filedata' value='' />
<input type='submit' value='전송' />
</form>
요청은 에디터에서 보내는게 아니라서 에디터 정보를 뺀 업로드 모듈을 하나 추가 했습니다.
procFileUpload에서 에디트 시퀸스 부분만 지우고 따로 뺀 함수인데요
firephp로 로그를 찍어보면 마지막에 insertFile 메서드 실행해서 업로드는 됩니다.
파일목록을 불러오는 결과값도 업로드 된 파일이 리스트에 포함되서 옵니다.
문제는 결과값이 성공여부를 담은 json으로 받아야 되는데 결과값은 엉뚱한 마크업이 옵니다.
요청 헤더는 application/json으로 보내는데 결과값은 아래와 같습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<!-- META -->
<meta charset="UTF-8"/>
<meta name="module" content="file" />
<meta http-equiv="imagetoolbar" content="no" />
<title></title>
<link rel="stylesheet" href="/animal/common/css/xe.css" type="text/css" charset="UTF-8" media="all"
/>
<link rel="stylesheet" href="/animal/common/js/plugins/ui/jquery-ui.css" type="text/css" charset
="UTF-8" media="all" />
<script type="text/javascript" src="/animal/common/js/jquery.js?20120503144344"></script>
<script type="text/javascript" src="/animal/common/js/x.js?20111124090210"></script>
<script type="text/javascript" src="/animal/common/js/common.js?20120503144344"></script>
<script type="text/javascript" src="/animal/common/js/js_app.js?20111124090210"></script>
<script type="text/javascript" src="/animal/common/js/xml_handler.js?20120116144006"></script>
<script type="text/javascript" src="/animal/common/js/xml_js_filter.js?20120426181728"></script>
<!--[if lt IE 9]>
<script type="text/javascript" src="/animal/common/js/html5.js"></script><![endif]-->
<link rel="shortcut icon" href="./modules/admin/tpl/img/faviconSample.png" /><link rel="apple-touch-icon"
href="./modules/admin/tpl/img/mobiconSample.png" />
<script type="text/javascript">//<![CDATA[
var current_url = "http://localhost/animal/";
var request_uri = "http://localhost/animal/";
var current_mid = "";
var waiting_message = "서버에 요청 중입니다. 잠시만 기다려주세요.";
var ssl_actions = new Array();
var default_url = "http://localhost/animal/";
var http_port = 80; var https_port = 80;
//]]></script>
</head>
<body>
<script>
//<![CDATA[
var current_url = "http://localhost/animal/";
var request_uri = "http://localhost/animal/";
var current_mid = "";
var waiting_message = "서버에 요청 중입니다. 잠시만 기다려주세요.";
var ssl_actions = new Array();
var default_url = "http://localhost/animal/";
var http_port = 80;var https_port = 80; //]]>
</script>
<!-- ETC -->
<div class="wfsr"></div>
<script src="/animal/addons/autolink/autolink.js?20111124090210"></script>
<script src="/animal/common/js/plugins/ui/jquery-ui.min.js?20120503144344"></script>
<script src="/animal/common/js/plugins/ui/jquery.ui.datepicker-ko.js?20120116144006"></script>
<script src="/animal/addons/resize_image/js/resize_image.min.js?20111124090210"></script>
</body>
</html>
어떻게 해야하는지 의견을 듣고 싶습니다. 감사합니다.