私はcodeigniterフレームワークで開発されたWebアプリケーションを持っています。ajaxコールでセッションが終了したときにログインページを表示しないようにします
私の問題は、バックエンドでセッションが期限切れになった場合、バックグラウンドでたくさんのajaxコールが発生し、ダイナミックデータをロードする場所にログインページが表示されることです。
すべてのajaxコールを変更せずにこの問題を解決するにはどうすればよいですか?サーバ側では、このための簡単な解決策、
があるので
私はcodeigniterフレームワークで開発されたWebアプリケーションを持っています。ajaxコールでセッションが終了したときにログインページを表示しないようにします
私の問題は、バックエンドでセッションが期限切れになった場合、バックグラウンドでたくさんのajaxコールが発生し、ダイナミックデータをロードする場所にログインページが表示されることです。
すべてのajaxコールを変更せずにこの問題を解決するにはどうすればよいですか?サーバ側では、このための簡単な解決策、
があるので
$.ajax({
url: "<?= base_url("controller/method") ?>",
data: {key1: value1,key2: value2},
type: "POST",
dataType: "HTML"
success: function(){
// here i'm processing the response.
}
});
オクラホマ。
if($_SESSION['loggedin']=='false') //assuming the login check
header('app-stat : loggedout') //send custom header to client
ここで、クライアント側では、ajax呼び出しでヘッダーをチェックします。
成功関数は次のようになります。
success: function(data, textStatus, request){
if(request.getResponseHeader('app-stat')=='loggedout')
{
//do what ever you want
}
else{
//enjoy
}
},
Ok、既に追加されている500のajaxソリューションです。
$(document).ajaxSuccess(function() {
//I think now you know what to do
});
このソリューションは問題ありませんが、私はすべての私のajax呼び出しでこれを変更しなければなりません(私は500以上のajax呼び出しをバックエンドを通して呼び出しています)。 – user7573053
解決策を追加してください。 –
私はこれらの成功したエラーが好きではありません。それはHTTPエラーコードのためのものです。 – apokryfos
class Controller_name extends CI_Controller {
public function __construct()
{
parent::__construct();
$user_id = $this->session->userdata('user_id'); // Session id of user
if(!$user_id || $user_id == '')
{
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{ // Checking if ajax request received or not
echo json_encode(array('status' => FALSE,'msg' => 'You are not logged in'));
die;
}
}
}
}
そして、あなたのAJAXリクエストで
$.ajax({
url: "<?= base_url("controller/method") ?>",
data: {key1: value1,key2: value2},
type: "POST",
dataType: "json"
success: function(resp){
if(resp.status == false)
{
alert(resp.msg);
}
}
});
注:「AJAXリクエストでJSON
:ここで私は、データ型を使用していますAjaxコードを投稿できますか? – Gntem
セッションの有効期限が切れている場合、Webアプリケーションでは通常のログインページが表示されます。今、「動的データ」とはどういう意味ですか? –
@ Mr.Phoenix私は自分のajaxコードを追加しました。 – user7573053