jQuery AJAX刷新页面并添加查询字符串

时间:2013-12-26 16:27:06

标签: javascript jquery asp.net ajax

我正在尝试从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;
});

1 个答案:

答案 0 :(得分:0)

如果你想通过POST方法进行ajax调用,你应该使用JQuery Ajax而不是JQuery Submit。第一个执行ajax调用,第二个“将事件处理程序绑定到”提交“JavaScript事件,或在元素”上触发该事件。您实际使用代码执行的操作是将ajax调用绑定到由“#contactForm”提交触发的事件。 JQuery Submit是故意(我认为)做的主要验证数据提交,另一方面JQuery Ajax实际上做了调用。 如果你想使用ajax提交表单,请创建一个验证数据的函数(非空等),然后获取imputs的值,然后使用ajax发送它(将此函数绑定到submit函数)。 如果您想使用常规表单通过邮寄发送数据,请使用传统和(如果您愿意)使用JQuery Submit验证数据。 我建议看看jquery docs(之前的链接)。 希望这有助于我的朋友!