在浏览器关闭时将数据发送到服务器

时间:2012-01-11 06:55:45

标签: javascript jquery ajax

我正在尝试为已登录的用户实施完全透明的自动保存系统,但在浏览器关闭时无法向服务器发送数据。我可以将一些functionallity绑定到unload事件,但是我无法将任何数据发送到服务器(使用jQuery / Ajax)。

当用户关闭浏览器时,是否可以将数据发送到服务器?

P.S。鉴于,即使GMail也不会自动保存草稿,但会警告可能的数据丢失,认为任务非常复杂......

2 个答案:

答案 0 :(得分:2)

将您的AJAX调用设置为同步。异步调用将让浏览器在操作完成之前继续运行。

$.ajaxSetup({ async : false })

请注意跨域和jsonp调用不支持同步调用$.ajax

答案 1 :(得分:2)

$(window).unload( function () {
      $.ajax({
        url: yourUrl,
        type: "POST",
        data: "value1=value",
        cache: true,
        success: function(response){

        }
        });
    } );

您还会在数据参数中传递多个数据,例如“value1 = value& value2 = value”,{yourUrl}是相对或绝对网址