Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在表单提交期间拨打$.get电话?_Javascript_Ajax_Html_Forms_Upload - Fatal编程技术网

Javascript 如何在表单提交期间拨打$.get电话?

Javascript 如何在表单提交期间拨打$.get电话?,javascript,ajax,html,forms,upload,Javascript,Ajax,Html,Forms,Upload,我不想用AJAX提交表单,但我想在表单提交过程中向服务器发出几个GET请求,以创建一个进度条,因为提交多个文件可能需要一段时间。我发现在webkit浏览器中,我不能在表单提交时发出GET请求,我发现将表单提交到iframe将允许我这样做 标记如下所示: <form action="/my-action" target="target-iframe"> ... </form> <iframe name="target-iframe"></iframe>

我不想用AJAX提交表单,但我想在表单提交过程中向服务器发出几个GET请求,以创建一个进度条,因为提交多个文件可能需要一段时间。我发现在webkit浏览器中,我不能在表单提交时发出GET请求,我发现将表单提交到iframe将允许我这样做

标记如下所示:

<form action="/my-action" target="target-iframe">
...
</form>
<iframe name="target-iframe"></iframe>
我仍然无法从GET请求中获取数据--我如何才能让它正常工作

$(document).ready(function() {
  $("form").on("submit", function(e) { //add a parameter e - the event object
     e.preventDefault(); //stop the form from submitting
    $.get("/other-action", function(data) {
      // Use data returned here
    });
  });
});
编辑

设置一个标志,在收到get请求的响应表单之前,不允许表单提交。收到响应后,设置标志以允许表单提交,然后以编程方式重新提交

$(document).ready(function() {
  var canISubmit = false;
  $("form").on("submit", function(e) { //add a parameter e - the event object
     var el = $(this);
     if(!canISubmit) {
       e.preventDefault();


       $.get("/other-action", function(data) {
         canISubmit = true;
         el.submit();
       });
     }


  });
});
确保
$.get
请求已完成的唯一方法是确保在
$.get
请求完成之前,表单不会提交并重定向页面

编辑#2

$(document).ready(function() {

  $("form").on("submit", function(e) { //add a parameter e - the event object
     e.preventDefault();

     $.post("url",$(this).serialize())
        .done(function(response,status,jqXHR) {

            $.get("/other-action")
                .done(function(response,status,jqXHR) {
                    //other stuff done

                    //refresh the page or do whatever....
                })
                .fail(function() {
                    //$.get failed
                });

        })
        .fail(function() {
            //$.post failed
        });

  });

});
编辑

设置一个标志,在收到get请求的响应表单之前,不允许表单提交。收到响应后,设置标志以允许表单提交,然后以编程方式重新提交

$(document).ready(function() {
  var canISubmit = false;
  $("form").on("submit", function(e) { //add a parameter e - the event object
     var el = $(this);
     if(!canISubmit) {
       e.preventDefault();


       $.get("/other-action", function(data) {
         canISubmit = true;
         el.submit();
       });
     }


  });
});
确保
$.get
请求已完成的唯一方法是确保在
$.get
请求完成之前,表单不会提交并重定向页面

编辑#2

$(document).ready(function() {

  $("form").on("submit", function(e) { //add a parameter e - the event object
     e.preventDefault();

     $.post("url",$(this).serialize())
        .done(function(response,status,jqXHR) {

            $.get("/other-action")
                .done(function(response,status,jqXHR) {
                    //other stuff done

                    //refresh the page or do whatever....
                })
                .fail(function() {
                    //$.get failed
                });

        })
        .fail(function() {
            //$.post failed
        });

  });

});
编辑

设置一个标志,在收到get请求的响应表单之前,不允许表单提交。收到响应后,设置标志以允许表单提交,然后以编程方式重新提交

$(document).ready(function() {
  var canISubmit = false;
  $("form").on("submit", function(e) { //add a parameter e - the event object
     var el = $(this);
     if(!canISubmit) {
       e.preventDefault();


       $.get("/other-action", function(data) {
         canISubmit = true;
         el.submit();
       });
     }


  });
});
确保
$.get
请求已完成的唯一方法是确保在
$.get
请求完成之前,表单不会提交并重定向页面

编辑#2

$(document).ready(function() {

  $("form").on("submit", function(e) { //add a parameter e - the event object
     e.preventDefault();

     $.post("url",$(this).serialize())
        .done(function(response,status,jqXHR) {

            $.get("/other-action")
                .done(function(response,status,jqXHR) {
                    //other stuff done

                    //refresh the page or do whatever....
                })
                .fail(function() {
                    //$.get failed
                });

        })
        .fail(function() {
            //$.post failed
        });

  });

});
编辑

设置一个标志,在收到get请求的响应表单之前,不允许表单提交。收到响应后,设置标志以允许表单提交,然后以编程方式重新提交

$(document).ready(function() {
  var canISubmit = false;
  $("form").on("submit", function(e) { //add a parameter e - the event object
     var el = $(this);
     if(!canISubmit) {
       e.preventDefault();


       $.get("/other-action", function(data) {
         canISubmit = true;
         el.submit();
       });
     }


  });
});
确保
$.get
请求已完成的唯一方法是确保在
$.get
请求完成之前,表单不会提交并重定向页面

编辑#2

$(document).ready(function() {

  $("form").on("submit", function(e) { //add a parameter e - the event object
     e.preventDefault();

     $.post("url",$(this).serialize())
        .done(function(response,status,jqXHR) {

            $.get("/other-action")
                .done(function(response,status,jqXHR) {
                    //other stuff done

                    //refresh the page or do whatever....
                })
                .fail(function() {
                    //$.get failed
                });

        })
        .fail(function() {
            //$.post failed
        });

  });

});


您的代码看起来一切都很好:。确保您的服务器配置正确,并且您正在请求正确的URI。您的代码看起来一切正常:。确保您的服务器配置正确,并且您正在请求正确的URI。您的代码看起来一切正常:。确保您的服务器配置正确,并且您正在请求正确的URI。您的代码看起来一切正常:。请确保您的服务器配置正确,并且您请求的URI正确。我希望在表单提交时出现$.get,因此我不认为这里需要的是preventDefault。谢谢您的帮助。我的问题是,我获取的数据是由表单提交调用的控制器操作动态设置的。因此,我需要在发出get请求之前开始表单提交,否则它将无法返回正确的数据。有什么方法可以做到这一点吗?是的-通过
$.post
请求提交表单(不是通过正常的浏览器提交-因此您仍然可以使用
e.preventDefault()
停止表单提交)。然后,当您收到请求的响应时,执行
$.get
我正在上载文件,因此
$.post
请求变得棘手,我希望
$.get
几乎在表单提交完成后立即执行,因此,我不想等到服务器返回响应。我已经为您提供了自己构建此表单所需的一切。我希望在表单提交时发生$.get,因此我不认为这里需要的是preventDefault。谢谢您的帮助。我的问题是,我获取的数据是由表单提交调用的控制器操作动态设置的。因此,我需要在发出get请求之前开始表单提交,否则它将无法返回正确的数据。有什么方法可以做到这一点吗?是的-通过
$.post
请求提交表单(不是通过正常的浏览器提交-因此您仍然可以使用
e.preventDefault()
停止表单提交)。然后,当您收到请求的响应时,执行
$.get
我正在上载文件,因此
$.post
请求变得棘手,我希望
$.get
几乎在表单提交完成后立即执行,因此,我不想等到服务器返回响应。我已经为您提供了自己构建此表单所需的一切。我希望在表单提交时发生$.get,因此我不认为这里需要的是preventDefault。谢谢您的帮助。我的问题是,我获取的数据是由表单提交调用的控制器操作动态设置的。因此,我需要在发出get请求之前开始表单提交,否则它将无法返回正确的数据。有什么方法可以做到这一点吗?是的-通过
$.post
请求提交表单(不是通过正常的浏览器提交-因此您仍然可以使用
e.preventDefault()
停止表单提交)。然后,当您收到请求的响应时,执行
$.get
我正在上载文件,因此
$.post
请求变得棘手,我希望
$.get
几乎在表单提交完成后立即执行,所以我不想等到收到服务器的响应,我已经给了你每一个