我很难通过AJAX将电子邮件地址发布到Parse后端。我已经用尽所有encodeURIComponent和urlencode / urldecode选项。这提交成功地将后端解析为非电子邮件文本(即" test")而#34; test@test.com"返回失败。
Chrome的开发人员工具显示以下内容: 表格数据:"电子邮件:test@test.com" 来源:" email = test%40test.com" url编码:" email = test%40test.com"。
发布"测试"返回" 200 OK",这是Parse在成功交易后返回的内容,但是,发布" test@test.com"返回"(已取消)的状态。"
另外,我可以手动通过网址发布" parse.php?email =test@test.com"它将成功提交给Parse。
感谢任何帮助。欢呼声。
// AJAX SECTION
$('#subscribe')。on(' click',function() { var email = $(' #mail')。val(); data = {email:email};
$.ajax({
url: "parse.php",
type: "post",
data: data,
dataType: "text",
success: function(data){
alert(data);
$("#result").html('Submitted successfully');
},
error:function(data){
alert(data.responseText);
$("#result").html('There was an error while submitting the email');
}
});
});
//// PHP SECTION
if(isset($ _ REQUEST [' email'])) { addEmail($ _ REQUEST ['电子邮件']); }
function addEmail($ email) { $ appid =" HIDDEN&#34 ;; $ restkey =" NOTFORYOU";
$url = 'https://api.parse.com/1/classes/Emails';
$headers = array(
"Content-Type: application/json",
"X-Parse-Application-Id: " . $appid,
"X-Parse-REST-API-Key: " . $restkey
);
$objectData = '{"email":"' . $email . '"}';
$rest = curl_init();
curl_setopt($rest,CURLOPT_URL,$url);
curl_setopt($rest,CURLOPT_POST,1);
curl_setopt($rest,CURLOPT_POSTFIELDS,$objectData);
curl_setopt($rest,CURLOPT_HTTPHEADER,$headers);
curl_setopt($rest,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($rest,CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($rest);
echo $response;
curl_close($rest);
}
答案 0 :(得分:0)
我解决了我的问题。它改变了表单帖子接管请求,基本上在它甚至可以发布到服务器之前取消AJAX请求。我更新了我的表单标签,如下所示:<form method="post" onsubmit="return false;">
这就是诀窍。