CakePHP. Ajax-запрос не работает с debug = 0 - PullRequest
2 голосов
/ 27 февраля 2010

Я в растерянности. Я отправляю форму через 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;
}

1 Ответ

0 голосов
/ 17 мая 2010

Я решил это. Оказалось, что это был редирект в ответе, который выдавал ошибку. Когда debug = 0, эта ошибка не будет отображаться, и вместо этого появится 404. Firefox будет угадывать сообщение 404 (которое на самом деле не было отправлено)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...