Почему я не могу использовать jQuery для увольнения запроса Ajax из разгрузить обработчика событий?

У меня есть следующий код, предназначенный для входа события, когда пользователь закрывает окно чата:

$(window).unload( function() {
   test();
});

function test()
{
   alert("Hi");
   $.ajax({
      type: "POST",
      url: baseUrl + 'Index/test',
      data: "user_id=" + "Nisanth" + "& chat_id=" + 2,
      success: function(msg){
         alert(msg);
      }
   });
   alert('Success');
}

И "Привет" и сообщения "Успеха" предупреждают прекрасный, но предупреждение в обратном вызове Ajax не делает... Операции, которую я намереваюсь инициировать через запрос Ajax, также не происходит (я разрабатываю приложение чата и намереваюсь зарегистрировать запись в базе данных, когда пользователь закрывает окно).

7
задан Shog9 16 February 2010 в 17:45
поделиться

2 ответа

Поскольку ajax является асинхронным, страница выгружается до того, как ответ будет отправлен должным образом, эффективно разрывая соединение. Попробуйте установить async:false;, хотя это задержит выгрузку страницы до получения ответа, что не лучшим образом скажется на удобстве пользователя, если ваш сервер работает медленно.

$(window).unload( function () { 
    test(); 
}); 
function test() 
{ 
    alert("Hi"); 
    $.ajax({ 
    async: false,
    type: "POST", 
    url: baseUrl + 'Index/test', 
    data: "user_id=" + "Nisanth" + "& chat_id=" + 2, 
    success: function(msg){ 
            alert(msg); 
        } 
    }); 
    alert('Success'); 
} 
15
ответ дан 7 December 2019 в 01:20
поделиться

проблема в формате ваших данных. Он преобразуется в строку запроса, это должны быть пары ключ / значение, например: "user_id: value"

-5
ответ дан 7 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: