Nov. 29, 2020
Django Simple Captcha Refresh Problem
- 1 Comments
- 4008 Views
- Categories: Django FrameWork Simple Solutions Code Sample
Although Google recaptcha v3 is very popular these days using Django Simple Captcha module is yet easy to install and use in your projects. The only thing that may turn you into crazy is captcha refresh option of the module. It's not working if you follow the steps in official pages.
The captcha module includes following view for refresh :
def captcha_refresh(request):
""" Return json with new captcha for ajax refresh request """
if not request.headers.get('X-Requested-With') == 'XMLHttpRequest':
raise Http404
new_key = CaptchaStore.pick()
to_json_response = {
"key": new_key,
"image_url": captcha_image_url(new_key),
"audio_url": captcha_audio_url(new_key) if settings.CAPTCHA_FLITE_PATH else None,
}
return HttpResponse(json.dumps(to_json_response), content_type="application/json")
If the request is not send by ajax than 404 rises every time. And getJSON solution is always end up with 404.
Here is my simple solution to that and it works:
$('.captcha').click(function () {
$.ajax({
type: "POST",
headers:{"X-Requested-With": "XMLHttpRequest"},
url: "/captcha/refresh/",
dataType:"json",
}).done(function (result) {
$('.captcha').attr('src', result['image_url']);
$('#id_captcha_0').val(result['key'])
});
return false;
});
I hope this will shorten the time of anyone looking for the solution.
Stay healthy !
1 Comments
ChipWhisperer
Добро пожаловать в ОФИЦИАЛЬНЫЙ КАНАЛ! Здесь только проверенные live-казино с лицензиями. Актуальные зеркала, бонусы 500% и стратегии для: • American Roulette • Lightning Blackjack • Cash or Crash Промокоды для УСИЛЕННОГО СТАРТА! Играй и выводи! https://t.me/Best_promocode_rus/3078/надежные_казино_СЃ_бонусами Коллекция промокодов, бонусов, фриспинов и акций и как их найти: лучший активный канал казино Telegram с огромным опытом и качественным подбором на каждую площадку.