0

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

元素: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 Forbidden 日志。

在 TestController 我有以下访问规则:

公共函数访问规则(){
返回数组(

 array('allow',

       'actions'=array('ajax'),

       'users'=array('@'),

 ),
 );    }

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

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

我是否可以自由地在 Yii 中进行任何 Ajax 调用(加载、发布..),或者我应该遵循一个约定/功能?

感谢您查看这个。

4

3 回答 3

0

您的数组语法中缺少字符。

public function accessRules() {
return array(
array('allow',
   'actions'=>array('ajax'),
   'users'=>array('@'),
     ),
);
}
于 2013-10-16T21:10:05.397 回答
0

它似乎适用于这个:

$.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");

        }

    });

谢谢你的帮助!

于 2013-10-17T01:24:05.790 回答
0

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

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'); ?>");
    });             
});
于 2013-10-17T08:08:13.193 回答