2017-01-28 3 views
0

Я использую PHP Mailer, у меня есть это в конце почтового php-файла send, поэтому я могу получить ответ, используя форму AJAX.jQuery AJAX Переадресация на страницу

if(!$mail->send()) { 
       $resp['errmessage'] = 'Mail error: '.$mail->ErrorInfo; 
      } else { 
       $resp['errmessage'] = 'Message sent succesfully!'; 
       $resp['status'] = 'success'; 
      } 
echo json_encode($resp); 

У меня есть этот JQuery в данный момент:

$(document).ready(function() { 
var theForm = $(".my-form"); 
theForm.validate({ 
submitHandler: function(theForm) { 
$('#send-button').hide(); 
$('#loading-button').show(); 
$.ajax({ 
type: 'POST', 
    url: '<?php echo $domain; ?>/thefile.php', 
    success: function(response) { 
       if (response.status == 'success') { 
       $('#loading-button').html('sent'); 
      } 
      $('#loading-button').html(response.errmessage); 
       }; 
      }); 
     return false; 
} 
    }); 
}); 

Вместо того, чтобы давать ошибки или статус сообщения, хотя это просто отвлекая на страницу, чтобы показать ошибку, что-то я делаю неправильно до сих пор ?

Спасибо!

+2

Вы уверены, что часть JS уволена? похоже, что форма просто выполняет атрибут 'action'. –

+0

Вы предотвратили дефолт? Что вы видите на консоли? –

ответ

0

После добавления header('Content-type: application/json'); в файл отправки PHPMailer он сработал!