Я в растерянности. Я отправляю форму через 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. Так что, я думаю, это связано с безопасностью.
Кто-то может подумать, что я в черной дыре, но проблема в том, что компонент Security в настоящее время не активирован; кроме того, черная дыра должна отправлять пустую страницу, а не ошибку 404 (еще меньше для неправильной страницы).
РЕДАКТИРОВАТЬ: Я решил это. Оказалось, что это был редирект в ответе, который выдавал ошибку. Когда debug = 0, эта ошибка не будет отображаться, и вместо этого появится 404. Firefox будет угадывать сообщение 404 (которое на самом деле не было отправлено)
Я решил это с
if ($this->RequestHandler->isAjax()) {
$this->autoRender = false;
}