JS Ajax要求セッションの期限切れの問題解決方法の分析
2321 ワード
本論文の例は、JS Ajaxがセッションの期限切れを要求する問題解決方法を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
ページにとって、sessionの期限が切れているのは比較的に簡単で、普通はフィルタの中でsessionのユーザーが存在するかどうかを判断するのでさえすれば、存在しないならばページにジャンプして登録ページに行けばいいです。
Ajax要求に対しては、この方法は無効で、登録ページのhtmlコードしか取得できません。なぜなら、Ajax要求は、ブラウザではなく
解決策:
サーバ端
リターン
JQueryの
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。
ページにとって、sessionの期限が切れているのは比較的に簡単で、普通はフィルタの中でsessionのユーザーが存在するかどうかを判断するのでさえすれば、存在しないならばページにジャンプして登録ページに行けばいいです。
Ajax要求に対しては、この方法は無効で、登録ページのhtmlコードしか取得できません。なぜなら、Ajax要求は、ブラウザではなく
XMLHTTPRequest
オブジェクトから開始され、サーバから返された情報の受信者もXMLHTTPRequest
であり、ブラウザではないからである。解決策:
サーバ端
リターン
ResponseHeader
にJavascriptで処理するために識別変数を追加することができます。Javaを例にとって、フィルタ内で以下のように処理することができる。
try {
// Ajax
String requestType = request.getHeader("X-Requested-With");
if (StringUtils.isNotEmpty(requestType) && requestType.equalsIgnoreCase("XMLHttpRequest")) {
response.setHeader("SessionStatus", "sessionTimeOut");
requestContext.abortWith(Response.status(401).build());
return;
}
//
requestContext.abortWith(Response.accepted().build());
response.sendRedirect(loginPath);
} catch (IOException ex) {
//do nothing
}
Javascript端JQueryの
ajaxComplete
方法で処理できます。要求を送信する時にセッションが満了したかどうかを判断します。
/**
* ajax
*/
$(document).ajaxError(function (event, jqXHR, options, errorMsg) {
var sessionStatus = jqXHR.getResponseHeader('SessionStatus');
if (sessionStatus && sessionStatus === 'sessionTimeOut') {
alert(" , ");
location.href = "login";
}
});
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「JavaScriptのajax操作技術のまとめ」、「JavaScriptエラーとデバッグテクニックのまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」および「JavaScript数学演算の使い方のまとめ」本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。