AJAX在离开页面之前立即调用

Chu*_*k D 7 ajax jquery load get xmlhttprequest

我想在用户点击指向另一个页面的链接时执行简单的AJAX get请求.AJAX调用是完成还是会停止,因为用户离开了发起AJAX请求的页面?我并不关心get请求的响应.

有什么想法或想法吗?

jAn*_*ndy 12

如果您只想将数据发送到服务器而不关心共鸣,则可能需要尝试信标请求.这基本上是一个火灾和忘记的事情是这样的:

function sendInfo(something) {
     var beacon = new Image();
         beacon.src = '/somepath/script.pl?info=' + something;
}

$('a[href^=http]').bind('click', function(e) {
    sendInfo(escape(e.href));
});
Run Code Online (Sandbox Code Playgroud)

好吧,这种技术不会阻止所以它可能是一个竞争条件,无论浏览器是否会触发请求(我没有为此目的测试它).为了确保请求将被触发,请调用这样的ajax调用:

$('a[href^=http]').bind('click', function(e) {
    $.get('/somepath/script.pl', {info: escape(e.href)}, function(data) {
        location.href = e.href;
    });

    return false;
});
Run Code Online (Sandbox Code Playgroud)