JQuery не получает ответ при использовании асинхронного - PullRequest
0 голосов
/ 25 декабря 2011

Я использую этот код, чтобы получить ответ от сервера. Но я хочу это асинхронно, так как мне нужно показать прогресс. Когда я использую этот код, я не получаю сообщения от сервера (только получаю предупреждение как объект). Вот мой код Есть идеи?

var msg = $.ajax({
    type: 'POST',
    url: '../pages/registration.php',
    async: true,
    data: {
        do: 'register'
    },
    beforeSend: function () {
        $("#Progress").show();
    },
    success: function (data, status) {
        $("#Progress").hide();
        $("#AckMsg").html(data);
    }
});
alert("aa" + msg);

Ответы [ 4 ]

1 голос
/ 25 декабря 2011

Возможно, вам следует подключить функцию к событию сбоя.

msg.fail(function(jqXHR, textStatus) 
{ 
    alert( "Request failed: " + textStatus ); 
}); 
1 голос
/ 25 декабря 2011

Установите оповещение при успешном обратном вызове. Так как это асинхронный вызов, вы можете перехватить только ответ при успешном обратном вызове.

success: function (data, status) {
        $("#Progress").hide();
        alert(data);// or you can write 'debugger' here if you are using firebug will break at this point and you can check what your remote call is returning.
        $("#AckMsg").html(data);
    }

Также в firebug перейдите на консоль, вы можете проверить запрос и ответ на ваш звонок.,Если вы не привыкли к firebug, попробуйте использовать инструменты разработчика в IE или Chrome.

1 голос
/ 25 декабря 2011

Начиная с jQuery 1.5, объект XMLHttpRequest (jqXHR) возвращается функцией $ .ajax ().Это объект, который вы присваиваете своей переменной msg, а затем помещаете в предупреждение.Следовательно, вы получаете «предупреждение как объект», как вы его описываете.Если вы хотите предупредить о том, что возвращается сервером, выполните:

success: function (data, status) {
    $("#Progress").hide();
    $("#AckMsg").html(data);
    alert(data);
}

Если это предупреждает данные как пустые или неопределенные.Проверьте URL-адрес вашего вызова ajax.

url: '../pages/registration.php',

Я полагаю, что использование относительного URL-адреса, подобного этому, сделает запрос ajax на http://www.yoursite.com/../pages/registration.php, например.Скорее всего, это не то, что вы хотите сделать.

1 голос
/ 25 декабря 2011

Используйте инструменты разработчика, доступные практически во всех браузерах, чтобы точно определить, какой URL-адрес используется в ajax.Я предполагаю, что ваши '..' в URL кажутся подозрительными.

...