【问题标题】:Always do the event error $.ajax总是做事件错误 $.ajax
【发布时间】:2011-06-17 23:23:59
【问题描述】:

我有一个发送电子邮件的功能。 此功能正常工作,但总是触发错误功能,没有发生任何错误(我正在接收电子邮件)。

关注我的 Javascript:

//Send mail
$("div.contato-pedidooracao form").submit(function () {

    var dataString = $(this).serialize();
    $.ajax({
        type: "POST",
        url: "Contato/SendMail",
        data: dataString,
        dataType : "json",
        success: function (data) { alert("OK"); },
        error: function (data) { alert("Error"); }

    });
});

控制器

[HttpPost]
public ActionResult SendMail(string name, string phone, string cel, string email, string message)
{
    try
    {
        using (var mail = new MailMessage())
        {

            mail.To.Add("--mailhere--");

            mail.From = new MailAddress("\"" + name + "\" <" + email + ">" );
            mail.Subject = "Pedido de Oração - " + name;
            mail.Body = message;
            mail.IsBodyHtml = false;

            new SmtpClient().Send(mail);
        }
        return Json(new{Sucess = true, Message = "Email enviado com sucess!" } );

    }
    catch (Exception ex)
    {
        return Json(new{Sucess = false, Message = ex.Message } );
    }

}

【问题讨论】:

    标签: jquery ajax json post http-post


    【解决方案1】:

    我相信您需要添加event.preventDefault 以阻止提交事件冒泡并真正将表单提交到服务器。

    $("div.contato-pedidooracao form").submit(function (event) {
       event.preventDefault();
       ..... 
       .....
     });
    

    【讨论】:

      【解决方案2】:

      您是否尝试将 return false 添加到提交功能:

      $("div.contato-pedidooracao form").submit(function () {
      
        var dataString = $(this).serialize();
          $.ajax({
             type: "POST",
             url: "Contato/SendMail",
             data: dataString,
             dataType : "json",
             success: function (data) { alert("OK"); },
             error: function (data) { alert("Error"); }
         });
      return false;  //right here
      });
      

      【讨论】:

      • preventDefault 更好 - 如果在 ajax 调用中出现真正的错误,如果使用 return false,表单仍然会提交
      • @CResults:知道了。理解。它与事物的顺序有关。感谢您指出这一点。
      猜你喜欢
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多