如何在后台发送XMLHttpRequest异步发布?

时间:2013-11-06 21:42:00

标签: javascript ajax http

当用户点击某个按钮时,我希望通过更改window.location将用户带到另一个网页,同时在后台发出HTTP Post请求。 HTTP Post必须是异步的。我怎么能这样做?

 $(document).ready(function(){
      $("#b1").click(function(event){


        try{

             //call function that sends HTTP POST in the background
             window.location="http://www.stackoverflow.com";

        } catch(e) {


          alert(e.message);

         }
      });
    });

1 个答案:

答案 0 :(得分:2)

您可以打开新的浏览器窗口/选项卡,它将执行异步后请求并在收到响应后自动关闭,同时您可以更改自己窗口的位置。

$(function() {
  $('button').on('click', function() {
    var w = window.open('about:blank');
    w.document.write([
      '<html>',
        '<body>',
          '<script src="http://code.jquery.com/jquery-latest.js"></script>',
          '<script>',
            '$.post("http://my.site.com", "data to be sent").always(function() {',
              'window.close();',
            '})',
          '</script>',
        '</body>',
      '</html>'
    ].join(''));
    window.location = 'http://stackoverflow.com';
  });  
});