2012-09-21 60 views
0

正在對發送郵件的文件發出Ajax請求。它給了我正確的答覆,即「郵件已發送」,但未發送郵件。當我嘗試使用相同的GET頭從瀏覽器執行該文件時,它會發送郵件。Ajax給出響應但不執行PHP服務

那麼這裏有什麼問題?

ajax請求運行良好,並在jQuery中使用(成功)關鍵字觸發,以確保它成功。

幫幫我!

對於阿賈克斯:

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

你能告訴我你的代碼嗎? – muthu

+0

添加了代碼。 – Hatem

回答

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" 
} 
+0

那麼這裏的正確的東西是什麼? – Hatem

+0

@Hatem,我不明白你的問題。 – Starx