Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii框架1.1.14-不允许AJAX请求-禁止403_Php_Ajax_Jquery_Yii - Fatal编程技术网

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

Php Yii框架1.1.14-不允许AJAX请求-禁止403,php,ajax,jquery,yii,Php,Ajax,Jquery,Yii,我已经看到了许多与此相关的其他问题,我尝试了他们的解决方案,但仍然不起作用(相同的错误),这就是我打开此线程的原因 要素: 1视图-->发起AJAX请求。 1控制器-->应处理AJAX请求并返回数组 视图: 当然,我有一个动作叫做actionAjax 我是不是遗漏了什么?有什么规则我应该考虑吗 我是否可以在Yii中自由地进行任何Ajax调用(load、post…),或者我应该遵循一个约定/函数 感谢您对此进行研究。您的数组语法中缺少字符 public function accessRules()

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

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

视图:

当然,我有一个动作叫做actionAjax

我是不是遗漏了什么?有什么规则我应该考虑吗

我是否可以在Yii中自由地进行任何Ajax调用(load、post…),或者我应该遵循一个约定/函数


感谢您对此进行研究。

您的数组语法中缺少字符

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

它似乎与此相关:

$.ajax({

url:“”,
数据:{},
类型:“POST”,
数据类型:“html”,
成功:功能(响应){
$('#test').html(响应);
},
错误:函数(){
警报(“来自AJAX请求的请求数据失败”);
}
});

谢谢你的帮助

禁止意味着您必须在控制器的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'); ?>");
    });             
});
$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
$(“#测试”)。加载(“”);
});             
});

可能是输入错误,但数组语法中缺少>字符。应该是'users'=>array('@'),感谢您检查这一个。事实上,在向问题添加代码后,“>”字符消失了,但我的答案是正确的。I get:加载资源失败:服务器响应状态为403(禁止),感谢您检查此状态。事实上,在向问题添加代码后,“>”字符消失了,但我的答案是正确的。还有其他建议吗?提前谢谢你!
        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'); ?>");
    });             
});