ホームページ  >  記事  >  ウェブフロントエンド  >  Ajax使用時のユーザーセッション失敗の問題の解決策

Ajax使用時のユーザーセッション失敗の問題の解決策

韦小宝
韦小宝オリジナル
2018-01-01 18:36:571177ブラウズ

この記事は主に、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。