JQuery AJAX-запрос, показывающий старый ответ - PullRequest
4 голосов
/ 26 марта 2012

Привет, у меня есть запрос jQuery ajax для системы входа в систему.Сначала это работало очень хорошо.Но после нескольких попыток он только начал давать отрицательный ответ.Я проверил firebug, и он говорит, что ответ, в моем случае "Подключен".Но ответ Ajax просто показывает "Not_connected".Я не знаю, что делать :(. Пожалуйста, помогите мне.

Это мой код jquery:

var data_str = "username="+usrn+"&password="+pwd;
$.ajax({
    type: "POST",
    url: "index.php?rnd=" + Math.random(),
    data : data_str,
    complete : function(xhr,data){
        if(data == 'connected'){window.location.href = 'admin.php';}
            else if(data = 'not_connected'){ error_gen.html('Invalid username or password'); }
            alert(data);
        }
});

AS для кода PHP:

$log_result = $u_obj->login_user();
if($log_result == true)/*user is connected*/
{
    echo 'connected';
    exit;/*stoping the script after sending the result*/
}
    elseif($log_result == false)/*error while logging in*/
    {
        echo 'not_connected';
        exit;/*stoping the script after sending the result*/
    }

Ответы [ 3 ]

5 голосов
/ 26 марта 2012

Посмотрите на эту ветку: Можно ли кешировать методы POST в HTTP?

Возможно, есть заголовки, которые теперь делают браузер кэширующим ответ (хотя это POST).

Также вместо rnd = "+ Math.random () вы можете добавить запись

$.ajax({
    type: "POST",
    cache: false,
    ..
2 голосов
/ 26 марта 2012

Может ли это быть кэшированием браузера?Попробуйте добавить этот $ .ajaxSetup ({cache: false});

0 голосов
/ 26 марта 2012

Вы используете неправильную опцию $ .ajax для получения результата.Вы должны использовать опцию успеха.Просто измените строку

complete : function(xhr,data){

на

success : function(data){

. Это должно работать.

...