2016-03-28 25 views
2

unloadイベントでPUTリクエストを送信しようとしていますが、リクエストは常にキャンセルされます。ここページのアンロード時にAJAXリクエストをキャンセルせずに送信するにはどうすればよいですか?

回答は、それは不可能だと言う:How to perform an ajax call on page unload?

回答ここでそれが可能だ示唆:私はせずにどのようにキャンセルされることができるかどうHow do I send an AJAX request upon page unload/leaving?

は、私は、アンロードにAJAXリクエストを送ることができます。

編集:私は応答を気にしない、私は応答を必要としません。サーバーにいくつかの情報を送信するだけで、ページが生き残りチェックなしで閉じられたことを伝える必要があります。

+0

競合状態であるため、現代のブラウザでは不可能です。回答は最初のリンクと同じです。 – epascarello

+0

jQueryを使用していますか?またはJavaScriptのみ? – leonziyo

+0

私はJQuery @epascarelloを使用しています。私は応答を期待していない、私は応答を必要としません。 Google Apps Script(Webアプリ)のような別の非同期通信方式を使用して同じことを行うと、リクエストは正常に実行されます。 –

答えて

3

あなたがする必要があるのは、ajaxコールを同期させることだけです。こうすれば、ブラウザーはウィンドウ/タブを閉じる前に応答を待つので、取り消されません。

$(window).unload(function(){ 
    $.ajax({ 
     type: 'PUT', 
     url: '/your_url.php', 
     async:false, //IMPORTANT, the call will be synchronous 
     data: {} 
    }).done(function(data) {     
     console.log('complete'); 
    }); 
}); 
関連する問題