Код состояния AJAX не совпадает с кодом состояния сетевой консоли Chrome - PullRequest
3 голосов
/ 20 сентября 2011

Весь контент загружается на мою страницу с использованием вызовов JQuery / AJAX для некоторых функций CakePHP и выгрузки HTML-ответа в контейнер DIV.

Часто страница содержит форму, которую я хотел бы разместить перед добавлением новой страницы в контейнер DIV. Этот POST выполняется, когда пользователь нажимает кнопку домашней страницы.

Данные формы отправляются через POST в функцию CakePHP, которая затем сохраняет данные и выдает сообщение «save complete» перед die (). затем домашняя страница загружается в контейнер div после вызова моей функции post.

Проблема в том, что иногда не всегда сохраняются данные моей формы.

Есть 2 сценария:

1 - сохранить работает. Код ответа - 200. Данные ответа - «сохранение завершено»

2 - сохранение не работает. код ответа (согласно моей функции js) - 200, потому что я его предупреждаю. Однако в этой ситуации Chrome говорит, что ответ 302. и данные ответа содержат мою домашнюю страницу. мой код CakePHP не имеет перенаправлений в функции, в которую я отправляю сообщение.

кнопка моей домашней страницы:

function ajaxLoad(url) {

    saveThisPage();


    $.ajaxSetup ({// Disable caching of AJAX responses      
        cache: false
    });

    $('#content').load(url, function(response, status, xhr));

    return false;
}

saveThisPage =function() {
    var roc_data = $("#CustomerRocForm").serialize()
    var roc_url = '/customers/roc'

    $.ajaxSetup ({      
        cache: false
    });

    $.post(roc_url, roc_data, function(roc_response, roc_status, roc_xhr) { 
        alert(roc_xhr.status)
    });
}

ТЛ; др:

пользователь нажимает кнопку домашней страницы. эта запись создается на текущей странице, а затем загружает домашнюю страницу в контейнер div. отправка формы POST иногда возвращает 302

1 Ответ

0 голосов
/ 21 сентября 2011

Я добавил этот параметр для saveThisPage (), и сейчас он работает. Я бы предпочел, чтобы POST был асинхронным, потому что он замедляет загрузку страницы в ожидании ответа, но, по крайней мере, работает.

$.ajaxSetup ({      
    cache: false,
    async: false
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...