reCAPTCHA sitekey не отправлен для проверки кода AJAX - PullRequest
1 голос
/ 02 мая 2019

Итак, я работаю над проектом, чтобы граждане могли сообщать о проблемах в общественных местах муниципальному правительству, заполнив небольшую форму после выбора места на Google Картах.Нам нужно реализовать reCAPTCHA для проверки и остановить / замедлить людей от спама на наших серверах.

Данные, введенные в форму, отправляются через AJAX в API, который перенаправляет его на add-problem.php, но когда я добавляю 'g-recaptcha-response' и recaptcha.getResponse(); в моей форме FormData код перестает работать.

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)

Я также пытался отправить код статически, создаваяВар и приписывая ему секретный ключ, но у меня была точно такая же ошибка.Что бы это могло быть?

РЕДАКТИРОВАТЬ: Итак ... Я понял, в чем проблема.По сути, я посылал переменную с именем «g-recaptcha-response» через AJAX, но мой PHP пытался получить переменную с именем «recaptcha-response».Это исправило проблему с моим SweetAlert Modal!

...