/** * benitware와 제공되는 ajax call 함수 * $를 이용한다. */ function XHR(url, data, successCallback, blockElementSelector ,localStartFunc , localEndFunc){ var xhrObj = $.ajax({ url : url, type : "POST", dataType : "html", data : data, success : function (data, textStatus) { if(xhrObj.getResponseHeader('AJAX_EXCEPTION')){ _defaultErrorCallback(); }else{ var returnObj; try{ returnObj = eval('(' + data + ')'); }catch(ex){ // TODO } if( typeof(returnObj) == 'object' ){ if(successCallback){ successCallback(returnObj); } }else{ if(successCallback){ successCallback(data); } } } }, beforeSend : function(client){ // 로컬 이벤트 , 시작 client.setRequestHeader("AJAX_REQUEST_HEADER", "AJAX_REQUEST_HEADER"); if(blockElementSelector){ $(blockElementSelector).block(); } if(localStartFunc){ localStartFunc(); } }, complete : function(){ // 로컬 이벤트 , 끝 if(blockElementSelector){ $(blockElementSelector).unblock(); } if(localEndFunc){ localEndFunc(); } }, error : function (XMLHttpRequest, textStatus, errorThrown) { var errmsg = XMLHttpRequest.responseText; _defaultErrorCallback(errmsg); } }); } /** * 기본 exception 처리 함수 */ function _defaultErrorCallback(){ alert('시스템 오류'); } function _defaultSessionExpiredCallback(returnObj){ alert('세션이 끊어졌습니다.'); }