Обновить SimpleCaptcha
Я использую SimpleCaptcha
Мой web.xml выглядит так, как здесь:
<servlet>
<servlet-name>StickyCaptcha</servlet-name>
<servlet-class>nl.captcha.servlet.StickyCaptchaServlet</servlet-class>
<init-param>
<param-name>width</param-name>
<param-value>250</param-value>
</init-param>
<init-param>
<param-name>height</param-name>
<param-value>75</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>StickyCaptcha</servlet-name>
<url-pattern>/captcha</url-pattern>
</servlet-mapping>
И я добавил обновление, но на мой взгляд, как описано в этом SO-ответе:
<script type="text/javascript">
function reloadCaptcha(){
var d = new Date();
$("#captcha_image").attr("src", "/captcha?"+d.getTime());
}
</script>
...
<img id="captcha_image" src="/captcha_generator.jsp" alt="captcha image" width="200" height="50"/>
<img src="reload.jpg" onclick="reloadCaptcha()" alt="reload"width="40" height="40"/>
Но когда я нажимаю кнопку обновления, ничего не происходит. Также, когда я пытаюсь позвонить .../captcha?4324321
он все еще печатает ту же самую капчу (основываясь на пользовательской сессии, как я понял)
Я также использую spring-mvc и spring-webflow.
2 ответа
С помощью nl.captcha.servlet.SimpleCaptchaServlet
вместо nl.captcha.servlet.StickyCaptchaServlet
решил проблему
так как StickyCaptchaServlet
использует SessionId для создания изображения и SimpleCaptchaServlet
не
Я думаю, вы можете попробовать: $("#captcha_image"). Attr("src", "/captcha_generator.jsp"); вместо: $("#captcha_image").attr("src", "/captcha?"+d.getTime());