2014-03-04 2 views
0

최근 내 프로젝트에서 easy_captcha (https://github.com/phatworx/easy_captcha)을 사용합니다.Easy_captcha 자동 새로 고침

회원 가입 페이지가 있으며이 페이지에 captcha가 있습니다. 사용자 이름을 입력하면 ajax post 요청을 보내드립니다. 이전에이 사용자 이름이 신청 된 경우 수정 요청합니다.

그러나 양식을 제출할 때 captcha의 유효 기간이 지났다고 들었습니다.

게시 요청을 보내면 보안 문자가 새로 고침되지만 이유는 무엇입니까? 내가 어떻게해야합니까? 사용자가 직접 captcha를 새로 고침하여 가입 양식을 제출하도록 할 수는 없습니다.

답변

0

ajax 요청 후에 captcha 태그를 다시로드해야합니다. 컨트롤러에서 captcha를 다시로드하고 Ajax 요청을 제출할 때 다시 전달하십시오. 당신은 본질적으로 제출하기 전에 captcha를 근본적으로 상쾌하게합니다. 컨트롤러에서

:

respond_to do |format| 
    render :json =>{:captcha =>"<p>#{valid_captcha?(params[:captcha]) ? 'valid' : 'invalid' } captcha</p>"} 
end 

그런 다음

$.post("ajax/test.html", function(data) { 
    $(".result").html(data['captcha']); 
}); 

그 코드없이 좋은 예를 제공하기 어려운

불구하고 계속하기로 HTML을 설정