Запрос Ajax с JQuery на странице разгрузки

Я пытаюсь сделать это:

$(window).unload( function () { $.ajax({ type: "POST", url: "http://localhost:8888/test.php?", data: "test", success: function(msg){ alert( "Data Saved: " + msg ); } }); alert (c); }); 

Однако предупреждение об успешном завершении никогда не отображается, и этот запрос, похоже, даже не ударяет по серверу. Что я делаю не так?

6 Solutions collect form web for “Запрос Ajax с JQuery на странице разгрузки”

Я считаю, что вам нужно сделать запрос синхронным (он по умолчанию asynchronous), используя параметр async : false .

Попробуйте вызвать его с помощью async = false;

 jQuery.ajax({url:"http://localhost:8888/test.php?", async:false}) 

Я просто попробовал.

Лучшее решение – использовать navigator.sendBeacon . Это совершенно новая функциональность, которая начинает внедряться в новые версии браузеров. Функция доступна в браузерах, новее, чем Chrome 39 и Firefox 31. Она не поддерживается Internet Explorer и Safari на момент написания. Чтобы убедиться, что ваш запрос отправляется в браузерах, которые еще не поддерживают новую функциональность, вы можете использовать это решение:

 var navigator.sendBeacon = navigator.sendBeacon || function (url, data) { var client = new XMLHttpRequest(); client.open("POST", url, false); // third parameter indicates sync xhr client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); client.send(data); }; 

Однако эта функция не позволяет регистрировать обратный вызов onsuccess.

В спецификации HTML 5 указано, что alert() , prompt() и т. Д. Не будут доступны во время window.unload() . Дополнительную информацию см. В окне window.unload () . Вы можете проверить результат, используя console.log('success'); вместо alert() .

Ваша функция и вызов Ajax выглядят прекрасно, поэтому я предполагаю, что окно вашего браузера закрыто до того, как вызов ajax успеет перейти на сервер и обратно. Вызов ajax может вернуть что-то, когда окно закрывается, попробуйте добавить функцию ошибки к вашему вызову ajax, чтобы убедиться, что это так:

 error: function (xhr, textStatus) { alert('Server error: '+ textStatus); } 

Может быть, у вас будет больше успеха с использованием события onbeforeunload ?

  $(window).bind('beforeunload', ... 
  • Изменить элемент активного меню на странице прокрутки?
  • Объединение объектов jQuery
  • Регистрация jQuery щелчка, первый и второй клик
  • Ограничить загрузку-datepicker только в рабочие дни?
  • Draggable возвращается, если вне этого div и внутри других draggables (используя как недопустимые, так и действительные варианты возврата)
  • jquery проверить, если он нажат или нет
  • Событие Fire каждый раз, когда элемент DropDownList выбран с помощью jQuery
  • Как пропустить проверку подлинности Windows в webservice с помощью jQuery?
  • Изменить текст кнопки jquery mobile
  • Использовать Jquery Selectors на загруженном HTML-файле? .AJAX?
  • Событие click () вызывает два раза в jquery
  • Interesting Posts

    Как я могу иметь другой текст в нижнем колонтитуле на каждой странице документа Word?

    Применение формулы к диапазону ячеек без перетаскивания

    Невозможно изменить ArrayAdapter в ListView: UnsupportedOperationException

    Как получить местоположение посетителя (т.е. страну) с помощью геолокации?

    Разделение строки Mysql

    Исключения, которые не могут быть захвачены блоком try-catch в коде приложения

    jquery: изменить адрес URL без перенаправления?

    Почему не String.Empty константа?

    Как изменить внутренние номера страниц в метаданных PDF?

    Как использовать javaFX Preloader с автономным приложением в Eclipse?

    NSOperation на iPhone

    Как создать хеш-файл MD5 в Cocoa?

    Как написать масштабируемый сервер Tcp / Ip

    Как восстановить раздел «Избранное» в проводнике после того, как все записи были удалены?

    Восстановление образа Mac-BootCamp-Windows-раздела для Windows-машины

    Давайте будем гением компьютера.