この記事は主に、Ajax を使用する際のユーザーセッション失敗の問題の解決策を詳しく紹介します。Ajax に興味のある友人は参考にしてください。
ユーザーのセッションが失敗した場合。の場合、ユーザーのブラウザにログイン ページへのジャンプを強制するための JavaScript 文字列の文字列が返されます。ただし、Ajax を使用してデータをリクエストすると、検証が失敗した後は文字列のみが応答され、JavaScript は実行されません。これは、Ajax リクエストがブラウザではなく XMLHTTPRequest オブジェクトによって開始されるためです。サーバーが返します。情報は XMLHTTPRequest オブジェクトによって受信され、js オブジェクトに保存されます。
この状況に対処するために、HTTP リクエストを最初にバックグラウンドで判断し、Ajax リクエストを通常の http リクエストとは別に処理することができます。
Ajax から送信されるリクエストのヘッダー情報を観察すると、Ajax リクエストのヘッダー情報に X-Requested-With:XMLHttpRequest が含まれていることがわかり、これにより Ajax リクエストであるかどうかを判断できます。
String requestType = request.getHeader("X-Requested-With"); if(requestType != null && "XMLHttpRequest".equalsIgnoreCase(requestType.trim())) { //如果是ajax请求 response.setHeader("sessionStatus", "timeout"); response.sendError(601, "session timeout."); return false; }
JavaScriptコードを使用すると、Ajaxリクエストのグローバルデフォルトオプションを一度に設定できます
//设置Ajax请求的全局默认options jQuery.ajaxSetup({ type:'post', complete:function(xhr, ts){ //XMLHttpRequest, textStatus var sessionStatus = xhr.getResponseHeader('sessionstatus'); if(sessionStatus == 'timeout') { alert('页面过期,请重新登录!'); window.top.location.href = 'Login.htm'; } } });
このプロジェクトでは、DataTablesを使用して上記のJavaScript構成メソッドを使用していることがわかりました。エラー情報については、http://datatables.net/tn/7 を参照してください。 ajax の error 属性を設定する必要があります
上記がこの記事の全内容です。皆様の学習に役立つことを願っており、PHP 中国語 Web サイトをさらに学習していただければ幸いです。 関連する推奨事項:Ajaxバックグラウンドで送信されたJSONデータの問題の簡単な分析が成功
Ajax分析とJSON形式データをバックグラウンドに送信する際の415エラーの原因に対する解決策
Ajax送信フォームのフォームとファイルのサンプルコードをアップロードしました
以上がAjax使用時のユーザーセッション失敗の問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。