我的托管服务器上有 AJAX 联系表,不同域(另一个托管)上有 mail.php 文件。我正在尝试使用 jQuery 验证表单并使用 AJAX 发送电子邮件,但是当我调用 php 文件时,它会将电子邮件发送到邮箱,但不返回“成功”消息。相反,我得到“一个空字符串”。
我有 js
$.ajax({
type: 'POST',
url: options.url,
data: {subject:options.subject, name:$('#name').val(), email:$('#email').val(), message:$('#message').val()},
success: function(data){
if( data == 'success') {
$('#callback').append(options.recievedMsg);
} else {
$('#callback').append(options.notRecievedMsg);
}
});
而php看起来像这样
<?php
define( "RECIPIENT_NAME", "John Smith" );
define( "RECIPIENT_EMAIL", "my.email@mail.com" );
define( "EMAIL_SUBJECT", "Visitor Message" );
$senderName = stripcslashes($_POST['name']);
$senderEmail = stripcslashes($_POST['email']);
$message = stripcslashes($_POST['message']);
if ( $senderName && $senderEmail && $message ) {
$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
$headers = "From: " . $senderName . " <" . $senderEmail . ">";
$success = mail( $recipient, EMAIL_SUBJECT, $message, $headers );
};
echo 'success';
?>
当我检查控制台“数据”值时,它显示(一个空字符串),并且在 ajax if 函数中我总是得到 false 和 notReceived 消息。
如何使 php 文件返回 if(data == 'success') 状态为 true 的 'success'?我在这里错过了什么吗?