CakePHP的。 Ajax请求不使用debug = 0

时间:2010-02-27 02:14:42

标签: php security cakephp

我不知所措。我使用

通过Ajax提交表单
submitForm: function(element) {
    $.post(
        webroot + 'users/settings',
        $('#AJAXform').serialize(),
        function() {
            var option = $('#AJAXform').find('select option:selected');
            $j.current.v.updateField(element, option.text());
            $j.current.v.removeForms();
        }
    );
}

确实一切正常......也就是说,直到我将调试级别设置为0。

然后Ajax请求失败。但奇怪的是,通过Firebug,我可以看到我得到了一个带有写入

的错误404

未找到

    错误:     在此服务器上找不到请求的地址'/ users / profile'

问题在于我没有调用页面/ users / profile而是/ users / settings(users / profile是表单所在的页面)。这只会在调试级别为0时发生。所以我猜这与安全性有关。

有人可能会认为我被黑洞,但问题是安全组件目前没有被激活;此外,黑洞应该发送一个空白页,而不是错误404(对于错误的页面更少)。

编辑:我解决了。事实证明,它是响应中的重定向,导致错误。当debug = 0时,将不会显示该错误,而是会出现404。 Firefox会猜测404消息(实际上并未发送)

我用

解决了这个问题
if ($this->RequestHandler->isAjax()) {
    $this->autoRender = false;
}

1 个答案:

答案 0 :(得分:0)

我解决了。事实证明,它是响应中的重定向,导致错误。当debug = 0时,将不会显示该错误,而是会出现404。 Firefox会猜测404消息(实际上并未发送)