如何通过AJAX从PHP文件中获取返回数据?
我正在尝试用PHP和AJAX制作一个联系人表单。电子邮件发送,但它总是说如何通过AJAX从PHP文件中获取返回数据?,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试用PHP和AJAX制作一个联系人表单。电子邮件发送,但它总是说“发送失败!”,即使在控制台中,它说“true”,这将导致html“发送消息!” 因此,我在PHP脚本的末尾写了以下内容: if (!$mail->send()) { echo $mail->ErrorInfo; } else { echo "true"; } 这意味着通过AJAX,我得到的输出数据应该是其中之一,对吗 ajax.S
“发送失败!”
,即使在控制台中,它说“true”
,这将导致html“发送消息!”
因此,我在PHP脚本的末尾写了以下内容:
if (!$mail->send()) {
echo $mail->ErrorInfo;
} else {
echo "true";
}
这意味着通过AJAX,我得到的输出数据应该是其中之一,对吗
ajax.SetText("Sending...");
$.post("sendmail.php", {
name: userName, email: userEmail, comments: userComments, business: currentBusiness, website: currentWebsite
}, function(data) {
if(data == "true") {
ajax.SetText("Sent!");
console.log(data);
$.get("sent.html", function(sentData){
$("#content").html(sentData);
});
} else {
ajax.SetText("Send mail");
console.log(data);
$.get("unsent.html", function(sentData){
$("#content").html(sentData);
});
}
ajax.isSubmiting = false;
});
这是jQuery^
因此,基本上,如果发送电子邮件,我希望返回值为“true”,这样我就可以将适当的信息放在页面上,如“消息已发送!”但在这种情况下,无论发送失败还是成功,它都不会返回true。我也尝试过,在php文件中,
print\r(“true”)
和die(“true”)
但仍然不起作用。有人知道为什么吗?任何事情都将不胜感激,谢谢。看起来系统将“true”
作为关键字。试着把OK
之类的东西放进去。还要检查是否没有输出额外的行。您可以通过检查.trim()
来完成此操作
要检查此类问题,请使用encodeURI()
函数在控制台上尝试:
console.log(encodeURI(data));
这可能会给您提供类似的信息:
我在输出上创建了一个输入行。如果您选择以下选项,则可能不匹配:
data == "true"
因此,您可能需要在此处使用trim()
函数。有关更多信息,请参阅以下内容:
我坚信情况会是这样<代码>:)看起来系统将
“true”
作为关键字。试着把OK
之类的东西放进去。还要检查是否没有输出额外的行。您可以通过检查.trim()
来完成此操作
要检查此类问题,请使用encodeURI()
函数在控制台上尝试:
console.log(encodeURI(data));
这可能会给您提供类似的信息:
我在输出上创建了一个输入行。如果您选择以下选项,则可能不匹配:
data == "true"
因此,您可能需要在此处使用trim()
函数。有关更多信息,请参阅以下内容:
我坚信情况会是这样<代码>:)我原以为这样也行,但同样的事情发生了。在控制台上它说的是真的,所以我很失落。控制台说的是真的吗?您是否执行了
console.log(encodeURI(data))代码>?这个输出是什么?我发现了问题!因此,在脚本(我使用PHPMailer)中,我有一行代码“$mail->SMTPDebug=2”;一旦我删除它,它就可以完美地工作。谢谢我想这也行,但同样的事情发生了。在控制台上它说的是真的,所以我很失落。控制台说的是真的吗?您是否执行了console.log(encodeURI(data))代码>?这个输出是什么?我发现了问题!因此,在脚本(我使用PHPMailer)中,我有一行代码“$mail->SMTPDebug=2”;一旦我删除它,它就可以完美地工作。谢谢