通过AJAX将电子邮件地址发布到Parse后端

时间:2014-03-19 23:38:47

标签: php jquery ajax email parse-platform

我很难通过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);

}

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。它改变了表单帖子接管请求,基本上在它甚至可以发布到服务器之前取消AJAX请求。我更新了我的表单标签,如下所示:<form method="post" onsubmit="return false;">这就是诀窍。