reCAPTCHA网站密钥未通过AJAX代码发送以进行验证

时间:2019-05-02 12:35:20

标签: ajax recaptcha sweetalert

因此,我一直在研究一个项目,使市民可以通过在Google地图上选择地点后填写一点表格,向市政府报告公共地方的问题。 我们需要实施reCAPTCHA进行验证,并阻止/阻止人们向我们的服务器发送垃圾邮件。

在表单中输入的数据通过AJAX发送到API,该API将其重定向到add-problem.php,但是当我在formData上添加'g-recaptcha-response'recaptcha.getResponse();时,代码停止工作。 / p>

var formData = new FormData();
formData.append("description", description);

formData.append("pic", picture[0]);
formData.append("cpf", cpf);
formData.append("status", 1);
formData.append("keyword", keyword);
formData.append("type", "add-problem");
formData.append("place_id", $("#name").attr('data-id'));
formData.append("g-recaptcha-response", recaptcha.getResponse());


$.ajax({
    type: 'POST',
    url: '../../back/api/api.php',
    data: formData,
    cache: false,
    contentType: false,
    processData: false,
    beforeSend: function () {
        $("#loader").show();
    },
    success: function (data) {
        $("#loader").hide();
        console.log("success");
        data = JSON.parse(data);
        if (data.error) {
            swal('Error', data.msg, 'error');

        } else {
            swal({
                title: 'Sucess',
                text: data.msg,
                type: 'success',
                onClose: () => {
                    location.reload();
                }

我的控制台日志中的错误是

Uncaught SyntaxError: Unexpected token O in JSON at position 0
    at JSON.parse (<anonymous>)
    at Object.success (municipe.php:467)
    at u (jquery-3.3.1.min.js:2)
    at Object.fireWith [as resolveWith] (jquery-3.3.1.min.js:2)
    at k (jquery-3.3.1.min.js:2)
    at XMLHttpRequest.<anonymous> (jquery-3.3.1.min.js:2)

我还尝试发送代码以静态方式创建一个var并将秘密密钥归因于它,但是我遇到了完全相同的错误。会是什么?

编辑:所以...我意识到了问题所在。基本上,我通过AJAX发送了一个名为“ g-recaptcha-response”的变量,但是我的PHP试图接收一个名为“ recaptcha-response”的变量。这解决了我的SweetAlert Modal的问题!

0 个答案:

没有答案