Javascript 没有调用Ajax
我用HTML编写了一个带有三个文本框的小表单。其想法是创建一个联系我表单,该表单将使用NodeMailer提交的信息。但是,没有调用我的ajax函数。更具体地说,信息不会被发送到NodeMailer所在的/time。 任何提示,请提前感谢!这是我的JS文件: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
$(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'>×")
.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'>×")
.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能提供更多的信息,答案会更好。这怎么可能不仅仅是一个猜测?明白吗?这是我唯一的错误@汤姆雷