Captcha刷新(mewebstudio)

时间:2015-10-23 06:37:43

标签: php jquery ajax laravel-4 captcha

目的:刷新验证码图片。

routes.php文件

window.onload = function () {
    $(window).resize(function () {
        setSize();
    });
}

验证码图片(mypage.blade.php):

Route::get('/get_captcha/{config?}', function (\Mews\Captcha\Captcha $captcha, $config = 'default') {
    return $captcha->src($config);
});

js文件:

<img src="{{ Captcha::img() }}" alt="captcha" class="captcha-img" data-refresh-config="default">

问题:我的控制台上出现js ajax错误:$(document).ready(function(){ $('img.captcha-img').on('click', function () { var captcha = $(this); var config = captcha.data('refresh-config'); //console.log(config); $.ajax({ method: 'GET', url: '/get_captcha/' + config, }).done(function (response) { captcha.prop('src', response); }); }); }); 错误。

参考:https://github.com/mewebstudio/captcha/issues/54#issuecomment-141483501

其他信息:我在Laravel 4上使用验证码,而且我无法在上面{{1}行中找到名为http://localhost/get_captcha/default 404的方法}}

提前谢谢。

1 个答案:

答案 0 :(得分:4)

重要说明:将captcha_img(&#39; flat&#39;)更改为laavel4语法。两者的逻辑相同。

验证码HTML

<div class="form-group refereshrecapcha">
{!! captcha_img('flat') !!}
</div>
<input id="captcha" class="form-control" type="text" name="captcha" data-validation="required" >
<a href="javascript:void(0)" onclick="refreshCaptcha()">Refresh</a>

在控制器内创建一个重新生成验证码的函数。

控制器代码 -

public function refereshCapcha(){
    return captcha_img('flat');
}

验证验证码请求

'captcha' => 'required|captcha',

将您的函数标记为可以使用ajax调用它的路径文件。

路线档案

Route::get('/refereshcapcha', 'HelperController@refereshCapcha');

创建一个用于发出ajax请求的函数

<强> AJAX -

<script>
function refreshCaptcha(){
$.ajax({
url: "/refereshcapcha",
type: 'get',
  dataType: 'html',        
  success: function(json) {
    $('.refereshrecapcha').html(json);
  },
  error: function(data) {
    alert('Try Again.');
  }
});
}
</script>