Yii 框架 1.1.14 - 不允许 AJAX 请求 - 403 禁止


Yii Framework 1.1.14 - AJAX request not allowed - 403 Forbidden

我已经看到了许多其他与此相关的问题,我已经尝试了他们的解决方案,但它仍然不起作用(相同的错误),这是我打开此线程的原因。

元素:1 视图 --> 发起 AJAX 请求。1 个控制器 --> 应处理 AJAX 请求并返回一个数组。

视图:

  $(document).ready(function(){
      $("button").click(function(){
              $("#test").load("<? echo >Yii::app()-createUrl('test/ajax');?>");
              });             
  });

因此,当我单击带有"id=test"的按钮时,它应该转到TestController并从actionAjax返回一个简单的数组。

遇到的问题是,每当我单击 #test 按钮时,控制台(例如Google Chrome控制台)中都会看到403禁止日志。

在测试控制器中,我有以下访问规则:

public function accessRules() {
返回数组(

 array('allow',
       'actions'=array('ajax'),
       'users'=array('@'),
 ),
 );    }

当然,我确实有一个名为actionAjax的操作。

我在这里错过了什么吗?有什么规则是我应该考虑的吗?

我可以自由地在 Yii 中进行任何 Ajax 调用(加载,发布)还是应该遵循约定/函数?

感谢您对此进行调查。

数组

语法中缺少字符。

public function accessRules() {
return array(
array('allow',
   'actions'=>array('ajax'),
   'users'=>array('@'),
     ),
);
}

它似乎适用于这个:

$.ajax({

        url:"<?php echo Yii::app()->createUrl('test/ajax');?>",
        data:{},
        type:"POST",
        dataType:"html",
        success:function(response){
             $('#test').html(response);
        },
        error:function(){
             alert("Failed request data from AJAX request");
        }
    });

感谢您的帮助!

> 禁止意味着您必须在控制器的访问规则中添加该规则:

class TestController extends Controller
{
    public function accessRules()
    {
        return array(
            array('allow',
                'actions' => array('ajax'),
                'users' => array('@'),
            ),
            array('deny',
                'users' => array('*'),
            ),
        );
    }
}

看看你的代码,因为充满了错别字:

$(document).ready(function(){
    $("button").click(function(){
        $("#test").load("<? echo Yii::app()->createUrl('test/ajax'); ?>");
    });             
});