如何解决CAKEPHP 2.x中禁止的#a; ajax 403错误"

时间:2015-03-03 19:58:16

标签: jquery ajax cakephp

我试图在cakephp中使用ajax调用来访问数据,但是获得了403禁止错误,如下所示。

GET http://localhost/ec/bazar/Products/color_switcher/3 
403 (Forbidden)
jquery.js:6 
x.ajaxTransport.sendjquery.js:6 
x.extend.ajax53:251 
colorSwitcher53:327 
onclick

我正在使用此代码拨打电话

function colorSwitcher(id){

        var testid = id;
       $.ajax({
                type: 'GET',
                url: '<?php echo $this->webroot; ?>Products/color_switcher/' + testid,
                error: function () {
                    console.log("error in ajax call");
                },
                success: function (data) {
                    $("#img-portion").html(data);
                },
            });

    }

控制器

public function color_switcher($testid = ''){
      $this->layout= 'ajax';
}

color_switcher.ctp

<?php echo "helooooooo"; ?>  

1 个答案:

答案 0 :(得分:2)

经过多次努力,我找到了解决方案

如果您使用的是Auth,则需要确保在控制器/操作不在$this->Auth->allow()列表中时已登录。

或者只是通过

允许公共访问
public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow('action name');
    }

在我的案例中&#39;行动名称&#39;将是color_switcher

确保将debug设置为0,可能会导致一些问题。

由@Dunhamzzz解释here