ajax表单已提交但没有回复

时间:2016-11-25 17:00:55

标签: javascript php jquery ajax forms

所以我从一个ajax请求提交这个表单,它的工作正常只是提交后没有响应回调

这是我的代码:

//index.html
<form method="POST" id="myForm" action="sendmail.php">
  <input type="text" name="sender_email" placeholder="Email" required="">
  <textarea placeholder="Message" name="message" required=""></textarea>
  <input type="submit" name="send" value="SEND">
</form>
$(document).ready(function() {
  $("#myForm").on('submit', function(event) {
    event.preventDefault();
    var formData = $(this).serialize();
    $.ajax({
      type: 'POST',
      url: 'sendmail.php',
      dataType: "json",
      data: formData,
      success: function(response) {
        alert("Mail sent"); // no callback here 
      },
      error: function(xhr, status, error) {
        console.log(xhr);
      }
    });
  });
});

我的php:

<?php
    ini_set('display_errors', 1); 
    ini_set('display_startup_errors', 1); 
    error_reporting(E_ALL);
    if(isset($_POST['message'])){
        $to      = 'support@mydomain.com';
        $subject = $_POST['subject']; 
        $message = $_POST['message']; 
        $headers = "From: ".$_POST['sender_nam‌​e​']." <".$_POST['sender_em‌​ail‌​'].">\r\n"; $headers = "Reply-To: ".$_POST['sender_ema‌​il‌​']."\r\n"; 
        $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
        'X-Mailer: PHP/' . phpversion();
        if(mail($to, $subject, $message, $headers)) {
    echo json_encode(["success" => true]); 
    }  else {echo json_encode(['success'=>false]); 
    }
        exit;
     }
    ?>

任何人都可以指出这里有什么问题?

1 个答案:

答案 0 :(得分:1)

您指的是$_POST['subject'], $_POST['sender_nam‌​e​'], $_POST['sender_nam‌​e​']文件中的sendmail.php,但未通过表单发送这些内容。这就是为什么php抛出警告并且你没有得到任何有效的ajax响应。