Ответ 1
Почему это происходит:
Это происходит, когда клиент отключен JavaScript. Давайте рассмотрим следующий пример кода.
Пример кода из reCAPTCHA: Советы и рекомендации Документация API:
<script type="text/javascript"
src="https://www.google.com/recaptcha/api/challenge?k=your_public_key">
</script>
<noscript>
<iframe src="https://www.google.com/recaptcha/api/noscript?k=your_public_key"
height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"
value="manual_challenge">
</noscript>
Как мы видим, существуют теги noscript
, содержащие iframe
, a textarea
и скрытые input
. Когда JavaScript отключен, он отобразит содержимое тегов noscript
и будет выглядеть примерно так.
iframe
содержит форму, в которой пользователь может ввести captcha и отправить форму, на которой iframe
будет загружать новую страницу, содержащую код ответа. Поскольку JavaScript отключен, единственный способ получить этот токен в форме родительской страницы состоит в том, чтобы пользователь копировал и вставлял токен в textarea
в примере.
Обход проблемы:
Пока пользователь правильно копирует и вставляет токен, он должен работать нормально. Дважды проверьте, что HTML для captcha содержит правильные резервные элементы. Вы также можете отключить JavaScript в своем браузере, чтобы проверить его самостоятельно.