私はYiiが初めてです。以下のコードを持つモジュールを作成しました。
コントローラーのコード:
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update'),
'users'=>array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete','ajaxdialog'),
'users'=>array('*'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
そして、ここに私がajax呼び出しで使用したいアクションがあります:
public function actionAjaxdialog()
{
$user_id = $_POST['image_id'];
$is_active = $_POST['status'];
$model = $this->loadModel($image_id);
$model->is_active = $is_active;
$model->update();
}
ビューのコード:
$(document).ready(function(){
$('.changeStatus').live('click',function(){
var status = $(this).attr('status');
if(status==1)
{
status=0;
}
else
{
status=1;
}
var id = $(this).attr('image_id');
var $link = $(this);
$.ajax({
type: "POST",
url: "<?php echo Yii::app()->createUrl('Gallery/Ajaxdialog'); ?>",
data: {image_id:id,status:status},
success: function(msg)
{
if(status==0)
{
$link.attr('status','0');
$link.attr('title','In-active :: click to activate.');
$link.children('img').attr('src','/images/wrong.png');
AfterStatusChange('Image has been de-activated sucessfully.');
$link.parent().parent().removeClass('selected');
}
else
{
$link.attr('status','1');
$link.attr('title','Active :: click to de-activate.');
$link.children('img').attr('src','/images/right.png');
AfterStatusChange('Image has been activated sucessfully.');
$link.parent().parent().removeClass('selected');
}
},
error: function(xhr){
//alert("failure"+xhr.readyState+this.url)
alert("failure"+xhr.responseText);
}
});
});
});
私はlocalhostで作業しています。次のコードで「 .htaccess 」ファイルを更新しています。
deny from all
Allow from localhost
実行しようとすると、常に次のエラーが表示されます。
「アクセス禁止」
この問題を解決する方法を教えてください。