취준이
132
2019-07-31 17:22:16
5
415

ajax 기초적인 질문입니다..


취업준비를 위해 이력서 넣기 전 쇼핑몰 페이지 하나를 만드려고 하는데요

도중에 문제가 생겼습니다 ㅜ회원가입 폼에서 이메일 인증을 위한 인증번호 보내기 기능을 추가하려고 하는데요

인증번호 전송을 하면 성공적으로 전송이 되는데 success가 실행이 안 되는지 alert가 안 뜨더라구요..

공부를 안 한지 2년이 돼서 ajax도 다 까먹어서 예전에 만들어놓은 프로젝트 보면서 작성한 건데.. 뭔가 틀렸나요 아니면 작성법이 바뀐 건가요.. 인터넷에 계속 찾아봤는데 다 달라보이더라구요




$("#btnEmail").click(function(){

var m_email=$("#m_email").val();

if(m_email == ""){

alert("이메일을 입력하십시오");

$("#m_email").focus();

return;

}

$.ajax({

url : '${path}/member/email_check.do',

type : 'post',

data : 'm_email='+m_email,

success : function(data) {

alert("ddddddddd");

if(data == m_email)

alert(data + "로 인증번호가 전송되었습니다.");

$("#m_email").attr("readonly","true");

}

});

});





@RequestMapping("/member/email_check.do")

public String email_check(String m_email) {

final MimeMessagePreparator preparator = new MimeMessagePreparator() {

@Override

public void prepare(MimeMessage mimeMessage) throws Exception {

final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

helper.setFrom("******@gmail.com");

helper.setTo(m_email);

helper.setSubject("안녕하세요 회원가입 인증번호입니다.");

int i = (int)(Math.random()*10000);

if(i<1000)

i = i*10;

helper.setText("인증번호 : " + i);

}

};

mailSender.send(preparator);

return m_email;

}

0
  • 답변 5

  • olivvve
    1k
    2019-07-31 17:26:18

    설정이 어떻게 되어있는지 모르겠지만 컨트롤러에 @ResponseBody 붙여보세요. 그리고 디버깅해서 data값이 뭘로 넘어오는지 확인해보세요.

  • 쏭성
    81
    2019-07-31 17:33:28

    전송이 성공했다고 해서 success 콜백 함수가 실행되는 것은 아니고

    response를 정상적으로 받았을때 실행되기 때문에 아무 동작안한다면

    에러가 넘어오고 있을 것 같네요

    에러 콜백함수도 추가해서 콘솔 찍어보세요.

  • 쭈압
    354
    2019-07-31 17:33:29

    컨트롤러가 RestController가 아닌 듯 합니다.

    view를 위한게 아니고 data전송을 위한 것이므로 ResponseBody 선언을 해줘야 할 것 같네요

  • 취준이
    132
    2019-07-31 17:39:24

    헉 ㅜㅜㅜㅜ 감사합니다 리스폰스바디를 깜빡했네요 ㅜㅜ 모두들 즐거운 하루 되시길 바라겠습니다

  • 이대훈입니다
    88
    2019-07-31 17:43:53
    저도 ResponseBody 까먹어서 한참 고생했던 기억이 납니다.
  • 로그인을 하시면 답변 을 등록할 수 있습니다.