403 - 禁止:在Yii中调用视图文件时出错

时间:2014-07-25 13:16:00

标签: javascript php jquery .htaccess yii

所以,我在Yii中进行的JavaScript调用中遇到403禁止错误。我正在使用XAMPP,我不确定问题是什么。这是我第一次在Yii中使用JavaScript / jQuery - 所以我不知道是否有一些明显的东西我应该改变。 很多帖子都谈到过使用.htaccess - 但我不完全确定它是如何工作的,或者我会放置那个文件。

以下是我视图中的电话

<script> 
function getBalance(){
    $.get("protected/views/account/balance.php", "", function(data){

        alert(data);
    });
}
getBalance();
</script> 

页面balance.php只有7000(用于测试)。但是,403(禁止)被拒绝。感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:4)

在Yii中,您无法直接调用PHP文件。你必须在控制器中设置一个动作,如下所示:

保护/控制器/ CustomController.php

<?php
class CustomController extends Controller {

    public function balanceAction() {

        // Return a string
        echo "7000";

        // or, render a view file.
        // This example will render protected/views/custom/index.php
        $this->render('index');
    }

然后必须将控制器中的访问控制过滤器和规则设置为允许您刚刚创建的新操作,

<?php
class CustomController extends Controller {

    public function filters() {
        return array(
            'accessControl',
        );
    }
    public function accessRules() {
        return array(
            array('allow',
                // add the action name in lowercase in this array
                //  (without the word 'action')
                'actions' => array('balance'), 
                'users' => array('*'),
            ),
            // deny all other actions
            array('deny',
                'users' => array('*'),
            ),
        );
    }

然后在你的ajax调用或超链接中,你需要使用一个看起来像“controllerName / actionName”的URL调用该文件,在上面的例子中,我将使用“ custom / balance

    $.get("custom/balance", function(){  });