I use Ajax reload an captcha code image.
$('.load_captcha').click(function(){
var formData = {
// CSRF token
_token : csrf_token
};
$.ajax({
// The URL where we want to POST
url : captcha_url,
// Define the type of HTTP verb we want to use (POST for our form)
type : "POST",
data : formData
}).done(function(data) {
// Here we will handle errors and validation messages
if (data.success) {
// Handle errors
$('.captcha_img').replaceWith(data.captcha);
} else {
// ...
}
});
});
/**
* View: postCaptcha
* @return Response
*/
public function postCaptcha()
{
return Response::json(
array(
'success' => true,
'captcha' => HTML::image(URL::to('simplecaptcha'), 'Captcha', array('class' => 'captcha_img'))
)
);
}
It works well in Safari, Chrome and IE, but when I try it in Firefox, it doesn't work. And now, I know how to make it works, just add dynamic params of images file name, such as timestamp.
/**
* View: postCaptcha
* @return Response
*/
public function postCaptcha()
{
return Response::json(
array(
'success' => true,
'captcha' => HTML::image(URL::to('simplecaptcha'. '?' . time()), 'Captcha', array('class' => 'captcha_img'))
)
);
}