因此,我一直在研究一个项目,使市民可以通过在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的问题!