Javascript 没有调用Ajax

Javascript 没有调用Ajax,javascript,jquery,ajax,web,Javascript,Jquery,Ajax,Web,我用HTML编写了一个带有三个文本框的小表单。其想法是创建一个联系我表单,该表单将使用NodeMailer提交的信息。但是,没有调用我的ajax函数。更具体地说,信息不会被发送到NodeMailer所在的/time。 任何提示,请提前感谢!这是我的JS文件: $(document).ready(function(){ $("#send").click(function(e){ var name = $('input#name').val(); var

我用HTML编写了一个带有三个文本框的小表单。其想法是创建一个联系我表单,该表单将使用NodeMailer提交的信息。但是,没有调用我的ajax函数。更具体地说,信息不会被发送到NodeMailer所在的/time。 任何提示,请提前感谢!这是我的JS文件:

$(document).ready(function(){
    $("#send").click(function(e){ 

        var name = $('input#name').val();
        var email = $('input#email').val();
        var message = $('textarea#message').val();

        $.ajax({
            url: "/time",
            type: "POST",
            dataType: 'json',
            data: {
                name: name,
                email: email,
                message: message
            },
            success: function() {
                // Success message
                $('#success').html("<div class='alert alert-success'>");
                $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                    .append("</button>");
                $('#success > .alert-success')
                    .append("<strong>Your message has been sent. </strong>");
                $('#success > .alert-success')
                    .append('</div>');

                //clear all fields
                $('#contactForm').trigger("reset");
            },
            error: function() {
                // Fail message
                $('#success').html("<div class='alert alert-danger'>");
                $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                    .append("</button>");
                $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!");
                $('#success > .alert-danger').append('</div>');
                //clear all fields
                $('#contactForm').trigger("reset");
            }
        })

    }); 

}); 

请尝试使用特定的文件名而不是文件夹。ie

url: "/time/index.html",

在浏览器中包含来自开发人员控制台F12的任何错误,以帮助我们帮助您。

您缺少以下几点-

1将contentType:application/json添加到ajax选项中

2将JSON字符串化:

  data: JSON.stringify({
            name: name,
            email: email,
            message: message
        }),

另外,只需再次检查/time方法的参数是否分别为name、email和message。

是否调用了单击处理程序?请进行一些基本调试。您的浏览器控制台中有错误吗?在单击处理程序中添加一条警报/日志语句,以查看是否调用了该语句。我建议您查看浏览器的“网络”选项卡,查看发送的确切请求。如果您看到相应的请求被发送到那里,那么您需要在服务器上进行一些基本调试,以查看到达那里的内容以及服务器没有将该请求定向到代码的原因。您的客户端代码在发送请求时看起来很好,除非有脚本错误阻止它执行。如果没有客户端错误,那么您需要查看服务器端,并且您没有透露任何要使用的错误,因此我们无法帮助您解决。您的错误是:正在调用回调吗?@Barmar否,未调用回调。查询将自动为您串接数据。您不必手动执行此操作。还有,为什么您认为需要设置contentType?@jfriend00 jQuery将使用x-www-form-urlencoded格式,而不是JSON作为参数。@Barmar-是的,但OP没有声称请求已到达,但数据格式错误。OP声称请求没有到达服务器,因此这里的主要问题可能是除此之外的其他问题。除非OP没有告诉我们服务器端有错误。总的来说,关于这个问题的信息太少了,或者为了解决这个问题而采取的调试步骤太少了。@Sam你怎么会认为服务器需要JSON格式的数据?x-www-form-urlencoded是POST数据的正常格式。由于需要处理的信息很少,因此发送的请求肯定与方法签名不匹配。大多数情况下都是这样。如果OP能提供更多的信息,答案会更好。这怎么可能不仅仅是一个猜测?明白吗?这是我唯一的错误@汤姆雷