我正在尝试从HTML页面到process.aspx页面执行AJAX帖子。 ASPx页面的代码后面有一个OnSubmit Web方法,一旦完成就会发送一封电子邮件。
现在,当我提交表单时,页面会刷新,并且ajax帖子中的“数据”会被放入查询字符串中。我做错了什么?
CODE:
$('#contactForm').submit(function (event) {
event.preventDefault();
$.ajax({
type: 'POST',
url: 'process.aspx/OnSubmit',
data: $(this).serialize(),
dataType: 'json',
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
success: function (result) {
console.log("We returned: " + result.d);
}
});
return false;
});
答案 0 :(得分:0)
如果你想通过POST方法进行ajax调用,你应该使用JQuery Ajax而不是JQuery Submit。第一个执行ajax调用,第二个“将事件处理程序绑定到”提交“JavaScript事件,或在元素”上触发该事件。您实际使用代码执行的操作是将ajax调用绑定到由“#contactForm”提交触发的事件。 JQuery Submit是故意(我认为)做的主要验证数据提交,另一方面JQuery Ajax实际上做了调用。 如果你想使用ajax提交表单,请创建一个验证数据的函数(非空等),然后获取imputs的值,然后使用ajax发送它(将此函数绑定到submit函数)。 如果您想使用常规表单通过邮寄发送数据,请使用传统和(如果您愿意)使用JQuery Submit验证数据。 我建议看看jquery docs(之前的链接)。 希望这有助于我的朋友!