首页 > PHP资讯 > PHP培训技术 > yii-使用loginRequiredAjaxResponse解决AJAX会话超时

yii-使用loginRequiredAjaxResponse解决AJAX会话超时

PHP培训技术

此方法要求Yii 1.1.9 或以上版本

问题

用户在较长时间内没有动作,php回话已经超时,回话过期后又有一个ajax请求但是程序并没有任何反应,例如在gridview中,gridview的内容完全消失。

正确的行为

显示登录页面,登录后再重定向回来。

解决方法

在配置文件中设置loginRequiredAjaxResponse:

... 'components'=>array( 'user'=>array( ... 'loginRequiredAjaxResponse' => 'YII_LOGIN_REQUIRED',        ... ),    ... In your view or template php if (Yii::app()->components['user']->loginRequiredAjaxResponse){ Yii::app()->clientScript->registerScript('ajaxLoginRequired', ' jQuery("body").ajaxComplete(                function(event, request, options) {                    if (request.responseText == "'.Yii::app()->components['user']->loginRequiredAjaxResponse.'") {                        window.location.href = options.url;                    }                }            ); '); } ?>

注意:

以上代码在options.url为可用页面的url是测试通过,如果不是这种情况或者你只是想显示登录页面请替换:

window.location.href = options.url;

window.location.href = "'.Yii::app()->createUrl('/site/login').'";
本文翻译自外文网站,查看原文请点击:

PHP培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持41不支持0