Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 简易验证码自动刷新_Ruby On Rails - Fatal编程技术网

Ruby on rails 简易验证码自动刷新

Ruby on rails 简易验证码自动刷新,ruby-on-rails,Ruby On Rails,最近,我在我的项目中使用了easy\u captcha() 我有一个注册页面,该页面中放置了验证码,当用户输入用户名时,我将发送一个ajax post请求,以验证该用户名之前是否已注册 但是当我提交表格时,有人告诉我验证码已经过期了 我发现,当我发送post请求时,验证码会刷新,但为什么?我应该怎么做?我无法让用户再次手动刷新验证码以提交注册表单。您应该在ajax请求后重新加载验证码标签。尝试在控制器中重新加载验证码,并在提交ajax请求时将其传回。您实际上是在提交验证码之前刷新验证码 在控制器

最近,我在我的项目中使用了
easy\u captcha
()

我有一个注册页面,该页面中放置了验证码,当用户输入用户名时,我将发送一个
ajax post
请求,以验证该用户名之前是否已注册

但是当我提交表格时,有人告诉我验证码已经过期了


我发现,当我发送post请求时,验证码会刷新,但为什么?我应该怎么做?我无法让用户再次手动刷新验证码以提交注册表单。

您应该在ajax请求后重新加载验证码标签。尝试在控制器中重新加载验证码,并在提交ajax请求时将其传回。您实际上是在提交验证码之前刷新验证码

在控制器中:

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'] );
});