Функция jQuery $ .post не работает асинхронно - PullRequest
0 голосов
/ 17 января 2019

У меня есть простой jquery-скрипт на main.php, который создает сообщение (см. Первый $ .post), а затем отправляет уведомления (см. Второй $ .post):

$.post('core/functions/user/message/message.create.php', { to_user: to_user, message: message }, function() {

    $('.messages').load('account_page_msg.php?page_id=10');
});

$.post('core/functions/user/notify_email.php', { pushTitle: pushTitle, pushMessage: message });

Это вызывает notify_email.php это выглядит так:

// email function
$mail = new myPHPMailer;
$mail->isSMTP();
$mail->Host = '..........';
$mail->SMTPAuth = true;
$mail->Username = '.........';
$mail->Password = '.........';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->CharSet = 'UTF-8';
$mail->addAddress('jetprofile@yahoo.com', '');
$mail->setFrom('admin@ihusky.com', 'iHusky.com');
$mail->addReplyTo('jetprofile@yahoo.com', '');
$mail->isHTML(true);
$mail->Subject = 'Test email notifications';

$body = 'Email notifications';

$mail->MsgHTML($body);
$mail->send();

Почему мой сценарий на main.php ожидает, пока функция электронной почты завершит отправку электронной почты, даже если у меня нет действительного обратного вызова?Я думал, что это должно быть асинхронным.

1 Ответ

0 голосов
/ 17 января 2019

Попробуй это. Должно работать

$.ajax({
      type: 'POST',
      url: 'core/functions/user/notify_email.php',
      data: { user_id: to_user, pushTitle: pushTitle, pushMessage: message },
      success: function(response){
        alert(response);
    },
  async:true
});
...