ウェブサイトに Google ReCaptcha を追加しました。これは、Google が提供する HTML フォームです。
<script type="text/javascript"
src="http://www.google.com/recaptcha/api/challenge?k=my_public_key">
</script>
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=my_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>
そして、これは私のjQueryです(POSTによって送信されたすべての値が正しいことに注意してください。すべてチェックしました)
$('#captcha_form_btn').live('click', function () {
var challenge = $('#recaptcha_challenge_field').val();
var response = $('#recaptcha_response_field').val();
var remoteip = $('#remoteip').val();
$.ajax({
url:'http://www.google.com/recaptcha/api/verify',
data:'challenge=' + challenge + '&response=' + response + '&remoteip=' + remoteip + '&privatekey=my_private_key',
type:'post',
dataType:'jsonp',
success: function (data) {
console.log(data);
}
});
});
AJAX を使用して ReCaptcha に対するクライアントの回答を確認しています。クライアントの IP、応答、チャレンジ、および秘密鍵を送信して、Google API から応答を取得します。
ただし、API 応答の受信に問題があります (受信したかどうかは正確にはわかりません)。firebug の JavaScript コンソールには、次のような JavaScript エラーが表示されます。
ReferenceError: incorrect is not defined
incorrect-captcha-sol
Google API js ファイルで、「incorrect-captcha-sol」をクリックすると、次の 2 行を含む JavaScript ファイルにリダイレクトされます。
false
incorrect-captcha-sol
これはjsonデータとしてクライアントに返されるはずのレスポンスだと思いますが、ここでAPI jsファイルのJSエラーに関係していることが分かります。
どうしたの?