电子邮件已通过 AJAX POST 成功发送,但触发了错误回调而不是成功回调

E-mail sucessfully sent via AJAX POST but error callback triggered instead of success callback

我正在使用 AJAX 发送电子邮件并且它有效,电子邮件已发送给我的收件人。然而,我不明白的是为什么 AJAX 的 success 回调没有被触发,尽管已经发送了一封电子邮件。相反,会触发 error 回调。

显然这不是 CORS 问题,因为我在 AJAX 的 url 参数中使用相同的服务器。此外 Google 开发工具未报告任何问题并显示 200 OK.

JS代码:

$(document).ready(function(){
    $(".js-validate-2").validate({
        ignore: ":hidden",
        rules: {
            //something
        },
        messages: {
            //something
        },
        submitHandler: function(form) {
            var recipient = "myEmailTest@gmail.com"
            var specifiedProduct = "PRODUCT: " + $('#specifiedProduct').val();
            var msg = $('#msg').val();
            var phone = "TEL: " + $('#phone').val() + ". ";

            var params = {
                "email": recipient,
                "subject": specifiedProduct,
                "body": msg + phone,
            };

            var sendingToSupport = $.ajax({
                url: 'http://myServer/u/support/message',
                data: JSON.stringify(params),
                type: 'POST',
                dataType: 'json',
                contentType: 'application/json',
                success: function(data) {
                    console.log("Huge success");
                    console.log(params);
                    console.log(data);
                    alert("Successfully sent!");
                },
                error: function(data) {
                    console.log("Huge failure");
                    console.log(params);
                    console.log(data);
                    alert("We apologize for an error!");
                    $(".support-form").find("input[type=text], textarea").val("");
                }
            });
        }
    })
})

所以,问题是由以下代码引起的:

dataType: 'json',

表示 AJAX 调用返回的数据将采用 JSON 格式。因此 jQuery 将尝试解析这些数据。

就我而言,删除此代码有帮助,并且 AJAX 调用已成功发送并返回了正确的答案。