これは私が過去に使用したソリューションです:
サーバ側:
セッションがまだ有効かどうかを確認するときは、「X-Requested-With」ヘッダーも監視します。これは、jQuery を使用している場合は「XMLHttpRequest」である必要があります (注: IE は通常、小文字のヘッダー名なので、それにも注意してください)。セッションが実際に期限切れになり、ヘッダーが存在する場合、HTTP リダイレクトを使用する代わりに、次のような単純な JSON オブジェクトで応答します。
{ "SESSION": "EXPIRED" }
クライアント側:
私のオンロード コードでは、jQuery の ajaxComplete イベントを使用して、セッション期限切れオブジェクトのすべての着信要求ペイロードをチェックします。コードは次のようになります。
$(window).ajaxComplete(function(ev, xmlhr, options){
try {
var json = $.parseJSON(xmlhr.responseText);
}
catch(e) {
console.log('Session OK');
return;
}
if ($.isPlainObject(json) && json.SESSION == 'EXPIRED') {
console.log('Session Expired');
//inform the user and window.location them somewhere else
return;
}
console.log('Session OK');
});