如何解析/获取Ajax延迟响应

时间:2018-06-22 11:52:13

标签: jquery ajax

我正在尝试获取使用ajax发送到PHP邮件页面的电子邮件表单的响应代码。如果邮件发送成功,则回显1否则为0。

这是我从

发送的方式
$('form.ajax-form').on('submit', function(evt){
  evt.preventDefault();
  var $form = $(this);
  $.ajax({
    url: $form.attr('action'),
    method: $form.attr('method'),
    data:$form.serialize(),
    success: function(response){
      if (response == '1' ) {
        M.toast({html: 'I am a toast!'});
      }else if (response == '0') {
        M.toast({html: 'I am not a toast!'});
      }
    },
  });
});

根据响应,我想执行M.toast({html: 'I am a toast!'});,但是即使PHP邮件程序回显1或0,我也无法获得响应。邮件程序回响响应需要4秒钟。我已经尝试过delay : 4仍然无法获得答复。我究竟做错了什么 ?请帮忙。谢谢。

更新。

这是XHR的回复。

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试以下代码:

$('form.ajax-form').on('submit', function(evt){
  evt.preventDefault();
  var $form = $(this);
  $.ajax({
    url: $form.attr('action'),
    method: $form.attr('method'),
    data:$form.serialize(),
    success: function(response){
      if ($.trim(response) === '0') {
        M.toast({html: 'I am not a toast!'});
      }else{
        M.toast({html: 'I am a toast!'});
    },
  });
});

答案 1 :(得分:1)

这是工作代码。

$('form.ajax-form').on('submit', function(evt){
  evt.preventDefault();
  var $form = $(this);
  $.ajax({
    url: $form.attr('action'),
    method: $form.attr('method'),
    data:$form.serialize(),
    async:false,
    success: function(response){
      if ($.trim(response) === '1') {
        M.toast({html: 'I am a toast!'});
      }else if ($.trim(response) === '0') {
        M.toast({html: 'I am a not toast!'});
      }
    },
  });
});

不得不修剪响应并设置async:false,并且现在可以正常工作。