2015-06-14 14 views
5

दिखाई नहीं दे मैं अपने <head>गूगल reCAPTCHA

<script src="//www.google.com/recaptcha/api.js"></script> 

लेकिन कुछ भी पर मेरी <body>

<div class="g-recaptcha" data-sitekey="some-key (original is right)"> 

में निम्नलिखित है और यह दिखाया गया है, या तो फ़ायरफ़ॉक्स या क्रोम पर ... यह एक जाना जाता है मुद्दा?

+0

क्या कंसोल में कोई स्क्रिप्ट त्रुटियां हैं? – Ravimallya

उत्तर

-3

बदलें:

<script src="//www.google.com/recaptcha/api.js"></script> 

रहे हैं:

<script src="https://www.google.com/recaptcha/api.js" async defer></script> 

मैं अगर है कि सिर्फ एक टाइपो है, अगर यह नहीं है, निश्चित रूप से https: आपकी समस्या का समाधान होगा जोड़ने पता नहीं है।

+1

'https जोड़ना: निश्चित रूप से आपकी समस्या का समाधान करेगा' इसके बारे में निश्चित रूप से कोई निश्चित नहीं है; '//www.google.com/...' प्रोटोकॉल-रिश्तेदार यूआरएल है। यदि @ एफएएन दस्तावेज़ को 'https' स्रोत से परोसा जा रहा था, तो यह समान होगा। –

-2

मेरे पास बस उस सिस्टम पर था जिसमें कठोर ब्राउज़र सेटिंग्स हैं।
विश्वसनीय सूची में *.gstatic.com जोड़ने का संकल्प यह

मैं भी *.google.com और *.google-analytics.com

आशा जोड़ा मदद करता है कि किसी को

3

सुनिश्चित करें कि <script src="//www.google.com/recaptcha/api.js"></script> हेड टैग के समापन से पहले आखिरी बात है या नहीं। मेरे लिए यह वही समस्या है

0

सुनिश्चित करें कि आपके पास अपने ब्राउज़र में सक्रिय सामग्री अवरोधक नहीं हैं, उदाहरण के लिए विज्ञापन-ब्लॉक प्लस या यूब्लॉक मूल।

इन्हें अक्षम करें, पृष्ठ को रीफ्रेश करें और फ़ॉर्म को फिर से सबमिट करें।

0

मेरा मुद्दा यह था कि यह ज्यादातर समय दिखा रहा था लेकिन कभी-कभी ऐसा नहीं होता और मुझे इसे दिखाने के लिए फॉर्म (और ट्रिगर सत्यापन) जमा करना होगा। स्क्रिप्ट टैग में ?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

1

बस इस बाधा मारा, और मेरे मामले में यह AngularJS के कारण था। यह कोणीय तक सीमित नहीं है, किसी भी पुस्तकालय जो पेज लोड के बाद तत्वों को बांधता है, Google reCAPTCHA को प्रदर्शित नहीं कर सकता क्योंकि तत्व Google के कोड को निष्पादित करते समय मौजूद नहीं है।

इस का समाधान करने के लिए, पहले स्पष्ट प्रस्तुत करना बनाने के लिए और निष्पादित करने के लिए जब reCAPTCHA भार एक समारोह की आपूर्ति:

<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 प्रस्तुत करना।

संबंधित मुद्दे