在卸载事件之前 - jQuery AJAX跨浏览器问题?

时间:2014-11-05 14:07:46

标签: jquery ajax cross-browser onbeforeunload

我正在开发一些超级基本的网站跟踪软件。嵌入客户端站点的一小段代码从CDN加载javascript文件,该文件跟踪客户端站点上的访客操作 - 点击次数,页面上的时间等。

当他们离开页面时会触发beforeunload事件,以便通过jQuery AJAX将收集到的数据发送到我服务器上托管的PHP处理文件。

我知道beforeUnload存在跨浏览器问题。我认为通过以下文章解决了这些问题:http://jonathonhill.net/2011-03-04/catching-the-javascript-beforeunload-event-the-cross-browser-way/

大概有90%的时间都有效。但有时如果我检查我的php error_log,我可以看到事件正在触发,但我没有从AJAX请求中获取数据。

如果是AJAX问题,我不知道如何调试它 - 请求是从客户端站点发送的。或者这可能是beforeUnload的问题。

只是为了澄清一点,这里是我的代码片段,我用jQuery AJAX发送数据:

window.onbeforeunload = function (e) {
    jQuery.ajax('http://www.example.com', {
        async: false,
        data: 'tracking_data='+JSON.stringify(data),
        type: 'POST',
        dataType: 'text',
        cache:false
    });
};

有什么想法吗?我已经坚持了一个月了!

0 个答案:

没有答案