经典的ASP+AjaxForm-成功函数不起作用,完成即可

Classic ASP + Ajax Form - success function not working, complete is ok

本文关键字:不起作用 ASP+AjaxForm- 成功 函数 经典      更新时间:2023-09-26

使用Ajax和JS/Jquery,我试图向经典ASP(aspemail)发送一个简单的联系人表单,并在不重新加载的情况下从页面发送消息。

  <form id="form-submit" action="ASPEmail.asp" method="post">
    Name<br>
    <input id="name" type="text"><br>
    E-mail<br>
    <input id="email" type="text"><br>
    Message:<br>
    <textarea id="msg"></textarea><br>
    <input type="submit" id="btn" value="SEND">
    <img src="loading.gif" class="loading">
   </form>

我的ASPEMAIL。ASP只是测试ASP,我只写:

<% 
Response.Write("ok")
%>

还有我的JQuery脚本:

<script   src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script>
$(function() {
   $("#form-submit").submit(function() {
      var data = $(this).serialize(),
          action = $(this).attr("action"),
          method = $(this).attr("method");
      $(".loading").show(); // show loading div
      $.ajax({
         url: action,
         type: method,
         data: data,
         success: function(data) {
            if(data === "ok")
            {
             document.location = "final.asp";
            }
         },
         error: function(err) {
             // there was something not right...
         },
         complete: function() {
            $(".loading").hide(); // hide the loading
         }
      });
      return false; // don't let the form be submitted
   });
});
</script>

我将成功重定向到测试(我的目标只是一条信息),但什么都没发生。

但在发送后,"加载"出现在屏幕上并隐藏,然后提交和"完成"就可以工作了。

知道怎么了吗?

您有两个名为data的变量,请尝试在此处使用不同的变量,因为我认为您在此处"混淆"了javascript:)

 success: function(dataReturned) {
            if(dataReturned === "ok")
            {
             document.location = "final.asp";
            }
         },