通过AJAX在localhost,jQuery和javascript差异上发送邮件

时间:2017-04-26 23:30:16

标签: javascript jquery ajax email

我正在尝试使用AJAX的联系表单。我尝试使用普通的javascript,下面是代码的重要部分:

function sendMail(evt){
        var formdata = new FormData();
        // here I prepare formdata
        var xhr = new XMLHttpRequest;
        xhr.open("POST", 'php/mailer.php', true);
        xhr.onreadystatechange = function(){
            if (xhr.readyState == 4 && xhr.status == 200){              
                // do something when succesfull, let's say success()
            } else {
                // do something when not, let's say fail()
            }
        }
        xhr.send(formdata)      
    }   
}

因此,当我在localhost上工作时,当我点击“发送”时,邮件不会被发送并且fail()被释放,当我在服务器上执行时,邮件被发送并且success()被释放。这对我来说很酷,也是可以理解的。

但是当我尝试使用jQuery并拥有这样的代码时:

function sendMail(){
    $.ajax({
        type: 'POST',
        data: $(myForm).serialize(),
        url: 'php/mailer.php'
    }).done(function(){
        // success()
    }).fail(function(){
        // fail()       
    });
}

然后在我的本地主机上,当我点击“发送”时,比没有发送邮件,但是来自done()的success()被释放。为什么这样,我错过了什么?

0 个答案:

没有答案