8 Stimmen

reCAPTCHA Ajax API + benutzerdefiniertes Thema funktioniert nicht

Ich kann nicht erkennen, was ich falsch mache. Ich habe alles ausprobiert, was mir einfiel, reCAPTCHA funktioniert einfach nicht mit der Ajax-API. Hier ist, was mein Code sieht aus wie:

<!-- this is in <head> -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    Recaptcha.create("my key here", "recaptcha_widget", {
        "theme": "custom",
        "lang": "en",
        "callback": function() { console.log("callback"); } // this doesn't get called
    });
});
</script>
<!-- ... this is in <body> -->
<div id="recaptcha_widget" style="display: none">
    <div id="recaptcha_image"></div>
    <div id="recaptcha_links">
        <a href="javascript:Recaptcha.reload()">get another</a> &bull;
        <a class="recaptcha_only_if_image" href="javascript:Recaptcha.switch_type('audio')">switch to audio</a>
        <a class="recaptcha_only_if_audio" href="javascript:Recaptcha.switch_type('image')">switch to image</a> &bull;
        <a href="javascript:Recaptcha.showhelp()">help</a>
    </div>
    <dt>Type the words</dt>
    <dd><input type="text" id="recaptcha_response_field" name="recaptcha_response_field"></dd>
</div>

6voto

Dustin Laine Punkte 36921

Funktioniert das für mich? Was passiert gerade? Was versuchen Sie zu tun?

Wenn ich die console.log durch eine Warnung ersetze, ändert sie sich jedes Mal, wenn die Seite geladen oder ein neues reCaptcha generiert wird. Genau wie es sein soll.

Der Rückruf ist nicht, wo Sie es für die Validierung zu übermitteln, wenn das ist, was Sie versuchen zu tun, dann schauen Sie hier: http://recaptcha.net/apidocs/captcha/

2voto

Felix Punkte 86442

Entschuldigung für die erneute Beantwortung meiner Frage. Habe das Problem gefunden, anscheinend kann man reCAPTCHA nicht in lokal gespeicherten Dateien verwenden (Zugriff über file:/// ), müssen sie auf einer http:// Standort. Sobald ich diese auf localhost gestellt habe, hat es funktioniert.

+1 durilai für den Hinweis, dass es mit ihm/ihr funktioniert, so konnte ich das Problem aus einer anderen Perspektive betrachten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X