【发布时间】: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;
}
【问题讨论】:
-
如果您在自己解决问题后不打算删除该问题(因此遇到相同问题的人可能会找到您的解决方案),请考虑将标题更改为更具描述性的内容。
-
或者回答你赢得的问题,所以它被关闭