본문 바로가기

프로그램

http 화면에서 ajax를 이용 https주소를 호출해 결과값 얻기(cross domain)

http 화면에서 주민번호를 이용해 사용자인지 아닌지를 체크하는 프로그램이 필요했다.

ajax를 이용해 개발을 하였으나 주민번호가 개인정보 보호에 관련한 부분때문에 https를 이용해 결과 값을 얻어야 한다.

구글, 네이버, 다음 등을 검색한 결과 JSONP를 이용하여 해결할 수 가 있었다.


ajax로 서버를 호출하고 결과값을 callback 함수에 묶어서 return 해주면 된다.


사용법 1

     function fn_ajaxJsonp(){
          $.getJSON(
"https://localhost/name_check?callback=?",
                        function(data) {
                                         alert('성공 - ', data["CHECK"]);
                                        }
                    ); 


사용법 2

        function fn_ajaxJsonp(){
            $.ajax({
                url:"https://localhost/name_check",
                data:"id=1111&pw=2222"
                dataType:"jsonp",

                jsonpCallback: "myCallback",
                success: function( data, textStatus, jqXHR )
                {
                    alert('성공 - ' + data["CHECK"])       
                },
                error: function( jqXHR, textStatus, errorThrown )
                {
                    alert("조회 중 에러가 발생하였습니다.");
                }    
            });
        }



Server

    @RequestMapping(value="name_check")
    public void name_check(HttpServletRequest request,HttpServletResponse response)
            throws Exception {
        try{
             String callBack = request.getParameter("callback");

         String id = request.getParameter("id");

         String pw = request.getParameter("pw");


            JSONObject obj = new JSONObject();
            obj.put("CHECK", 'Y');

            rtnVal = callback+"("+obj.toString()+")";
            response.getWriter().print(rtnVal);
            response.getWriter().flush();
        }catch(Exception e){
            logger.error(e);
            throw e;
        }
    } 


참고 : http://warmz.tistory.com/739