0

我正在对发送邮件的文件执行 Ajax 请求。它给了我正确的回复,即“已发送消息”,但未发送邮件。当我尝试使用相同的 GET Headers 从浏览器执行该文件时,它会发送邮件。

那么这里有什么问题呢?

ajax 请求运行良好,并在 jquery 中使用 (success) 关键字触发以确保它成功。

帮我 !

对于 ajax 方面:

function SendEmail(To, Subject, Message) 
{
 var URL = 'mail-service.php?to=' + To + '&subject=' + Subject + '&msg=' + Message;

$.ajax({
    url: URL,
    type: 'GET',
    success: function (res) {
        alert("Message Sent to : " + To);
    }
});
  }

对于 PHP 方面:

<?php
$url = "http://mydomain.com/mail/mail.php?to=".$_GET['to']."&subject=".$_GET['subject']."&msg=".urlencode($_GET['msg']);

$link = fopen($url,"r");

while($res = fread($link,100))
{
    echo $res;
}

fclose($link);
 ?>
4

1 回答 1

1

你对函数的理解有误,successAJAX请求的函数一旦请求成功就会执行,它并不关心请求的页面了什么或没有做什么

为确保您收到正确的消息,您必须设置 PHP 处理文件以返回响应。

在你的脚本中

success: function (res) {
    alert(res); //Display the response text
}

并确保您的 PHP 文件将响应文本作为输出返回。

while($res = fread($link,100))
{
    echo $res; //Make sure this is like "Message sent" or "Message sending failed"
}
于 2012-09-21T11:41:29.120 回答