AJAX reCaptcha抛出未记录的错误(“programming_error”)

时间:2012-05-04 00:40:27

标签: ajax recaptcha

我正在尝试使用AJAX版本的recaptcha。 Recaptcha.create()工作正常,但是当我尝试使用Recaptcha.ajax_verify()时,我收到了一个神秘的错误:

{
   is_correct: false,
   programming_error: 'Input error: c: Parameter signature was not set'
}

这是一个示例HTML文件,可以自己尝试(使用您自己的公钥):

<!DOCTYPE html>
<html>
<head>
<script src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<div id="recaptcha_target"></div>
<input id="recaptcha_submit" type="button" value="Submit" />
<pre id="recaptcha_response"></pre>
<script>
$(document).ready( function () {
    Recaptcha.create( '**YOUR_PUBLIC_KEY**', 'recaptcha_target', {
        tabindex: 1,
        theme: 'clean',
        callback: Recaptcha.focus_response_field
    });
    $('#recaptcha_submit').click( function () {
        Recaptcha.ajax_verify( function () {
            $('#recaptcha_response').text( 'is_correct: '+arguments[0].is_correct+'\nprogramming_error: '+arguments[0].programming_error );
        });
    });
});
</script>
</body>
</html>

有没有人知道那个错误是什么?我看了一个美化版的recaptcha代码,它看起来像Recaptcha.ajax_verify()自己格式化验证请求。它只需要1个参数:一个回调函数。如果有一些我缺少的东西(例如私钥 - 我猜不应该在前端JS代码中),我看不出它会放在哪里。

我意识到我可以编写自己的PHP响应器来进行验证,但我想要一些完全客户端的东西。从它的外观来看,AJAX版本应该支持这种用法。

0 个答案:

没有答案