【问题标题】:CakePHP. Ajax request not working with debug = 0蛋糕PHP。 Ajax 请求不适用于 debug = 0
【发布时间】:2010-02-27 02:14:41
【问题描述】:

我很茫然。我通过 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 (用户/profile 是表单所在的页面)。而且这只发生在调试级别为 0 的情况下。所以我猜这与安全性有关。

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

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

我解决了

if ($this->RequestHandler->isAjax()) {
    $this->autoRender = false;
}

【问题讨论】:

  • 如果您在自己解决问题后不打算删除该问题(因此遇到相同问题的人可能会找到您的解决方案),请考虑将标题更改为更具描述性的内容。
  • 或者回答你赢得的问题,所以它被关闭

标签: php security cakephp


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多