Итак, я работаю над проектом, чтобы граждане могли сообщать о проблемах в общественных местах муниципальному правительству, заполнив небольшую форму после выбора места на 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!