我已經在我的<body>
谷歌驗證碼不顯示
<div class="g-recaptcha" data-sitekey="some-key (original is right)">
並且在這之後我<head>
<script src="//www.google.com/recaptcha/api.js"></script>
,但沒有顯示,無論是在Firefox或Chrome ......這是一個已知的問題?
我已經在我的<body>
谷歌驗證碼不顯示
<div class="g-recaptcha" data-sitekey="some-key (original is right)">
並且在這之後我<head>
<script src="//www.google.com/recaptcha/api.js"></script>
,但沒有顯示,無論是在Firefox或Chrome ......這是一個已知的問題?
變化:
<script src="//www.google.com/recaptcha/api.js"></script>
到:
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
我不知道,如果這只是一個錯字,如果不是,添加https:
肯定會解決你的問題。
'加入https:肯定能解決你的問題'沒有什麼明確的; '//www.google.com/...'是一個協議相關的URL。如果@ Fane的文檔是通過「https」來源提供的,那麼它將是相同的。 –
我剛剛在一個系統上有更嚴格的瀏覽器設置。
添加*.gstatic.com
到信任列表解決它
我還添加了*.google.com
和*.google-analytics.com
希望幫助別人
確保<script src="//www.google.com/recaptcha/api.js"></script>
是頭標記的結束前的最後一件事。 對我來說固定相同的問題
請確保您沒有在瀏覽器中激活任何內容攔截器,例如Ad-Block Plus或uBlock來源。
禁用這些,刷新頁面並再次提交表單。
我遇到的問題是,它顯示大部分時間,但偶爾它不會,我必須提交表單(並觸發驗證)才能顯示。將?render=explicit
添加到腳本標記爲我修復它。
<script src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script>
https://developers.google.com/recaptcha/docs/display#explicit_render
只要按下這個障礙,並在我的情況下,它是由於AngularJS。它不僅限於Angular,在頁面加載後綁定元素的任何庫都可能導致Google reCAPTCHA無法顯示,因爲該元素在Google代碼執行時並不存在。
爲了解決這個問題,首先要渲染明確,並提供一個函數來執行時,驗證碼載荷:
<script src='https://www.google.com/recaptcha/api.js?onload=recaptchaOnload&render=explicit' async defer></script>
現在,添加一個唯一的ID容器,例如
<div id="recaptcha" class="g-recaptcha" data-sitekey="site key here"></div>
然後在自定義功能等元素,以實際存在:
var _captchaTries = 0;
function recaptchaOnload() {
_captchaTries++;
if (_captchaTries > 9)
return;
if ($('.g-recaptcha').length > 0) {
grecaptcha.render("recaptcha", {
sitekey: 'site key here',
callback: function() {
console.log('recaptcha callback');
}
});
return;
}
window.setTimeout(recaptchaOnload, 1000);
}
這將繼續努力,持續10秒,直到它找到的元素,然後渲染的reCAPTCHA進去。
控制檯中是否有腳本錯誤? – Ravimallya