Ajax-запрос, когда пользователь закрывает окно? - PullRequest
2 голосов
/ 28 декабря 2010

Я хочу выполнить ajax-запрос, когда один пользователь закроет окно.Я получил этот код:

var $jQ = jQuery.noConflict();

$jQ(window).bind('unload', function() {

    $jQ.ajax({
       type: "GET",
       url: "http://www.mydomain.com/post_untrack.php"  ,
       success: function(msg){
          alert("Untrack");
       }
    });

});

Я получаю событие "alert", но скрипт не выполняется ...

post_untrack.php:

<?php
mail("myemail@mydomain.com", "Script executed", "Hooray!!!");
?>

Есть идеи?

Спасибо !!!

Ответы [ 3 ]

3 голосов
/ 28 декабря 2010

Чтобы сделать эту работу, необходимо добавить свойство

async: false

до .ajax() объект параметров, плюс вам нужно выполнить его на onbeforeunload, поэтому в jQuery

$jQ(window).bind('beforeunload',...);
1 голос
/ 28 декабря 2010

По умолчанию ajax-запросы асинхронны .Поэтому, хотя вы можете запустить запрос, когда окно выгружено, оно, вероятно, будет немедленно отменено и фактически никогда не будет отправлено пользователю.Хотя вы могли бы делать запрос синхронным, синхронные запросы действительно портят работу пользователя, приводя браузер к полной остановке.

Подробнее об этом в этот другой вопрос SO и егоответы .

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

0 голосов
/ 28 декабря 2010

является ли URL-адрес, размещаемый на том же домене, что и страница, которая пытается выполнить вызов ajax?

http://en.wikipedia.org/wiki/Same_origin_policy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...