对发送邮件的文件进行Ajax请求。它给了我正确的响应,即“已发送消息”但未发送邮件。当我尝试使用相同的GET标头从浏览器执行该文件时,它会发送邮件。
那么这里的问题是什么?
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);
?>
答案 0 :(得分:1)
你误解了这个功能,一旦请求成功,就会执行AJAX请求的success
功能,它不关心所请求的页面 >或没有。
为确保您收到正确的消息,您必须设置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"
}