Javascript 我们可以使用单个表单标记的操作发送两个post请求吗?

Javascript 我们可以使用单个表单标记的操作发送两个post请求吗?,javascript,html,Javascript,Html,我想在两个不同的API上发送表单的数据。有什么可能的解决方法吗?正如Robin所说,编写一个事件处理程序,在提交时发送两个api请求 <html> <head> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script> $(function () { $('form').on('submit', fun

我想在两个不同的API上发送表单的数据。有什么可能的解决方法吗?

正如Robin所说,编写一个事件处理程序,在提交时发送两个api请求

<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script>
      $(function () {

        $('form').on('submit', function (e) {

          e.preventDefault();

          $.ajax({
            type: 'post',
            url: 'firstAPIUrl',
            data: $('form').serialize(),
            success: function () {
              alert('first api was submitted');
            }
          });

           $.ajax({
            type: 'post',
            url: 'secondAPIurl',
            data: $('form').serialize(),
            success: function () {
              alert('second api submitted');
            }
          });

        });

      });
    </script>
  </head>
  <body>
    <form>
      <input name="time" value="value">
      <input name="date" value="value">
      <input name="submit" type="submit" value="Submit">
    </form>
  </body>
</html>

$(函数(){
$('form')。关于('submit',函数(e){
e、 预防默认值();
$.ajax({
键入:“post”,
url:'firstAPIUrl',
数据:$('form')。序列化(),
成功:函数(){
警报(“提交了第一个api”);
}
});
$.ajax({
键入:“post”,
url:'secondAPIurl',
数据:$('form')。序列化(),
成功:函数(){
警报(“第二个api已提交”);
}
});
});
});

如果在第一个ajax完成后再使用第二个ajax会更好,如:

<script>
  $(function () {

    $('form').on('submit', function (e) {

      e.preventDefault();

      $.ajax({
        type: 'post',
        url: 'firstAPIUrl',
        data: $('form').serialize(),
        success: function () {
          alert('first api was submitted');

          $.ajax({
            type: 'post',
            url: 'secondAPIurl',
            data: $('form').serialize(),
            success: function () {
              alert('second api submitted');
            }
          });
        }
      });

    });

  });
</script>

$(函数(){
$('form')。关于('submit',函数(e){
e、 预防默认值();
$.ajax({
键入:“post”,
url:'firstAPIUrl',
数据:$('form')。序列化(),
成功:函数(){
警报(“提交了第一个api”);
$.ajax({
键入:“post”,
url:'secondAPIurl',
数据:$('form')。序列化(),
成功:函数(){
警报(“第二个api已提交”);
}
});
}
});
});
});

不明白为什么不。只需在表单的
submit
事件中添加一个事件侦听器,在该事件中,您可以阻止默认操作并发出两个单独的Ajax“POST”请求,每个API一个。(我从未尝试过这个,所以我不打算给出答案,但我不明白为什么它不起作用。)你的问题标题的简单答案是:“我们可以使用单个表单标记的操作发送两个post请求吗?”是不-你不能在
上放置两个操作-当然,正如Robin和Garuuk所说,您可以将自己的JS处理程序附加到表单提交中,并在表单提交中执行任何操作。为什么这样更好?它们可以并行完成,我看不出有什么好的理由来序列化调用。这样,我可以在脚本中使用,并将您的提交放入队列,这样您就不会丢失提交,并且每次创建1个会话,而不是2个会话