我是yii2的新人。
使用网址调用操作时,会正确地重定向到登录页面。 导航栏上的示例
['label' => Yii::t('app', 'Đat san'), 'url' => ['/datsan/create']],
但是,当使用Javascript从服务器获取数据时,它不会自动重定向到登录页面。我该如何解决?
var vUrl = $("#datsan-url-create").data('url');
$.get(vUrl, function(data){
$('#modal-datsan').modal('show').find('.modalContent').html(data); // update data for modal
}
带
<input type="hidden" id="datsan-url-create" data-url='<?= Url::to(['/datsan/create']) ?>'>
我检查了控制台,它显示以下错误
Forbidden (#403): Login Required
/。DatsanController.php
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['create', 'update', 'delete'],
'rules' => [
[
'actions' => ['create'],
'allow' => true,
'roles' => ['@'],
],
[
'actions' => ['update', 'delete'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action) {
if (Yii::$app->user->identity->isAdmin || $this->isUserAuthor()) {
return true;
}
return false;
}
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
];
}
答案 0 :(得分:0)
嗯,如果你不这样说,你正在做AJAX请求它不会重定向。我相信你想要的东西:
$.get(vUrl, function(data, textStatus, jqXHR){
if (jqXHR.status == 403) {
window.location = vUrl; // or whatever login url is
} else {
$('#modal-datsan').modal('show')
.find('.modalContent').html(data); // update data for modal
}
}