Можно ли наблюдать 302 редиректа с помощью JavaScript? - PullRequest
4 голосов
/ 22 июля 2011

Есть ли в Javascript способ отслеживания URL-адресов, измененных с помощью перенаправлений 302 для элементов на странице?

У меня есть некоторый сценарий на удаленном сервере, на котором я не могу управлять, загруженный с помощью сценариятег, который может, при определенных обстоятельствах, немедленно возвращать перенаправление 302. В другое место.

Это способ наблюдать это перенаправление и получать уведомление о новом местоположении, чтобы предпринять различные действия в зависимости от загруженногоURI?

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Общая мудрость здесь, кажется, нет, но если вы хотите проверить это, попробуйте загрузить скрипт с помощью jjuery ajax:

var redirected = false;
$.ajax({
    url: url,
    dataType: "script",
    statusCode: {
        302: function() {
            redirected = true;
        }
    },
    success: function () {
        if (redirected) {
            // something
        } else {
            // something else
        }
    }
});

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

0 голосов
/ 22 июля 2011

Я так не думаю.Черновик спецификации от W3C гласит, что XMLHttpRequest будет прозрачно следовать за перенаправлением, и вы даже не используете что-то, что дает такую ​​ большую видимость процесса, когда выпросто добавив элемент script на страницу (черт возьми, вам повезло получить от него load / onreadystate событий).

...