javascript - 我应该在 PHP 中使用什么条件来检查我的 AJAX 请求中的 JSON 数据是否已成功接收?
问题描述
我有一个输出 HTML 输入字段和按钮的 PHP 脚本。当用户输入某些内容时,然后将其提交给带有输入字段值的 AJAX 调用帖子到服务器。然后发送一封电子邮件。
$data = json_decode(file_get_contents("php://input"));
if(!empty($data)){
$mail = new PHPMailer(true);
sendEmail($mail, $data->email);
}else{
echo "<input id=\"SSB_input_email\" type=\"email\" name=\"email\" placeholder=\"Email\" required>
<button id=\"SSB_DomainRegBtn\" type=\"button\" onclick=\"domainReg()\">Submit</button>";
}
//Define PHPMailer sendEmail
function sendEmail($param, $param01){
try {
//$param01 is the user email address
//etc
...
然后在客户端
let domainReg = ()=>{
var emailReg = document.getElementById("SSB_input_email").value;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
//modifies DOM here
}
};
xhr.open("POST", "../onlineStoreBackend/index.php", true);
xhr.setRequestHeader("Content-Type", "application/json");
var data = {email: emailReg};
xhr.send(JSON.stringify(data));
}
发送 AJAX 调用时,我似乎无法在服务器代码上获得条件评估为 true。我也试过
if(isset($data->email)){...
这也不起作用,我在这里做错了什么?顺便说一句,PHPmailer 函数不是问题,因为我已经通过将条件显式设置为 true 来测试它,以便在页面加载后立即发送电子邮件并且这很有效,但这显然不是我需要的功能
解决方案
推荐阅读
- node.js - 监听其他应用程序中发生的事件
- java - Rabbitmq 连接被拒绝,在 linux 服务器上的 docker 容器内运行
- python - Python 函数从另一个函数调用变量。但为什么?
- javascript - 使用现有数组中的匹配键拆分对象
- sql - 带case语句的listagg的正确形式
- git - mac 似乎不是 git 存储库错过了一个斜线
- mongodb - 即使在 mongoDB 中没有使用,如何显示所有可用的数据库列表?
- jenkins - 节点工具位置无法在 Jenkins 中正确保存
- postgresql - 错误 setval:值 0 超出序列“seq”的范围 (1..9223372036854775807)
- sql - 在 LARAVEL 中使用 group by 子句检索列的总和