Có thể là bộ nhớ đệm của trình duyệt. Nói cách khác, trình duyệt thấy rằng nó đã được tải captcha.php
để nó không cần tải lại.
Thử thêm chuỗi truy vấn vào nguồn hình ảnh bao gồm thời gian hiện tại. Vì nguồn hình ảnh bây giờ sẽ là một URL mà trình duyệt chưa tải trước khi nó sẽ cố gắng tải lại nó.
<img id="captcha" src="captcha.php">
<a id='reload'>Refresh now</a>
$('#reload').click(function(){
$('#captcha').attr('src','captcha.php?' + (new Date()).getTime());
});
Tốt hơn, hãy đặt tiêu đề HTTP thành captcha.php
để đảm bảo trình duyệt sẽ không lưu vào bộ nhớ cache.
<?php
// Set headers to NOT cache a page
header("Cache-Control: no-cache, must-revalidate"); //HTTP 1.1
header("Pragma: no-cache"); //HTTP 1.0
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>
Nguồn: https://stackoverflow.com/a/4485194/284685
đã lưu thời gian của tôi ... :) – user1844933