2015-09-02 66 views
2

我正在使用Ajax和jQuery进行表单数据提交。 当我在弹出窗口上提交表单时,我刷新了父页面。 我的代码:表单使用jQuery提交Ajax有时不起作用

$(document).ready(function() { 
    $("#frm_addSpeedData").submit(function(event) { 
    //event.preventDefault(); 
    $.ajax({ 
     type: "POST", 
      url: "/webapp/addSpeedDataAction.do", 
      data: $(this).serialize(), 
      success: function(data) { 
      //console.log("Data: " + data); 
      window.opener.location.reload(); 
      } 
     }); 
    }); 
}); 

但是页面被刷新回调的成功,但我看不到我的父页面上更新。有时我可以看到更新,有时甚至没有。什么是问题?我也需要知道如何在原生javascript中编写它,并使用ajax javascript提交表单。

+0

你使用Firebug调试Ajax的方法调用返回200 OK? – Lucky

+0

是的。返回200确定我可以看到 –

回答

0

也许你得到这个错误是因为javascript是异步的,并且即使你还没有请求的响应,你的代码也会继续。

试试这个:

$(document).ready(function() { 
     $("#frm_addSpeedData").submit(function(event) { 
     //event.preventDefault(); 
     $.ajax({ 
      type: "POST", 
       url: "/webfdms/addSpeedDataAction.do", 
       data: $(this).serialize(), 
       async: false, // This will only proceed after getting the response from the ajax request. 
       success: function(data) { 
       //console.log("Data: " + data); 
       window.opener.location.reload(); 
       } 
      }); 
     }); 
    }); 
+0

好。让我试试 –

+0

但我可以看到页面刷新。这意味着Ajax电话已经成功。是不是? –

+0

问题是:想象一下,如果字段“X”是数据库中的唯一值,那么您有验证。当你运行AJAX来验证它时,你必须从数据库中获取数据,然后验证它是否唯一。如果请求时间过长,则可能会进行提交而不验证该字段。如果我不清楚,请告诉我。在这个例子中,我无法复制错误,所以对我来说更难。 –