2013-11-27 32 views
1

我需要異步發送電子郵件。異步電子郵件php + jquery

爲了讓我有一個jQuery ajax客戶端和PHP後端來實際發送電子郵件,仍然沒有調用AJAX的成功方法。我明白這很簡單,但似乎並不奏效。有人可以看看我的代碼,看看我做錯了什麼嗎?真的很感激它。

$.ajax({ 
    type: "POST", 
    url: "mail.php", 
    data: {name: "manu", email: "[email protected]"}, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     alert('mail sent'); 
     $('#divToBeWorkedOn').html(msg); 
    } 
}); 

,我有mail.php

<?php 

header("Content-type: application/json"); 
$name = trim($_POST['name']); 
echo $name 
$email = trim($_POST['email']); 

$msg="my email"; 
$emailTo = '[email protected]'; 
$subject = 'Contact Form Submission from '.$name; 
$sendCopy = trim($_POST['sendCopy']); 
$body = "Name: $name \n\nEmail: $email \n\nMessage: $message"; 
$headers = 'From: Saddi website <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; 

mail($emailTo, $subject, $body, $headers); 
echo 1; 
?> 
+0

您爲AJAX調用獲得了哪些HTTP響應代碼?你有沒有在Web服務器日誌中顯示任何錯誤? –

+0

我該如何檢查? – CalZone

+0

關於這個話題已經有很多問題了 - 我用一個簡單的例子回答了一個[here](http://stackoverflow.com/questions/17021070/send-email-on-click/17021597#17021597)。 – Wez

回答

1

我看到兩個問題。

  1. 你迴應只是1,它不是JSON。因此,在你的PHP代碼做json_encode("msg"=>"1");

  2. 以我的經驗,如果你有這

header("Content-type: application/json"); OR header("Content-type: json/text");

你不會得到jQuery的successerror塊的任何結果。

success: function(msg) { 
    alert(msg); 
} 

味精會返回空值(或什麼也沒有)。警報將會發生,但會顯示類似對象的東西。