Ajax提供响应但不执行PHP服务

时间:2012-09-21 11:16:29

标签: jquery asp.net ajax

对发送邮件的文件进行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);
 ?>

1 个答案:

答案 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"
}