@ATLANT1S
Back-end developer

Как обрабатывать редиректы при AJAX?

Здравствуйте.

Лёгая предыстория: пишу плагин для Set-Top Box Teletec MAG-250 на Javascript для работы с fs.to (это не реклама).
Скрипт разбирает страницу и парсит ссылки на фильмы. Ссылки имеют вид:
_fs.to/get/play/1kqvftg8t6tgu.0.4278037390.974127405.1414671289_hd.mp4

Проблема в том, что при запросе этого URL происходит ещё 2 редиректа. Сам плеер приставки не может справиться с редиректами, видимо получая "302 Moved Temporarily" он сбрасывает соединение. Сам путь, для примера, получается такой:
1. _fs.to/get/play/1kqvftg8t6tgu.0.4278037390.974127405.1414671289_hd.mp4 (302 Moved Temporarily)
2. _filecdn.to/fsuaget/YzU0YmFlMWM4ODFmMDExNDJjNWMwNWUzZTZmZGQ2NThmc3RvfDMxMDQyMjU3MDh8MTAwMDB8MnwwfHw5YzA5ZTBkM2RlNjY4NTU5OTA5Y2VlYjNmZDcyZGI0NXwwfDE0MTQ2NzEzMDE,/play_1kqvftg8t6tgu.0.4278037390.974127405.1414671289.mp4 (302 Moved Temporarily)
3. _n25.filecdn.to/ff/YzU0YmFlMWM4ODFmMDExNDJjNWMwNWUzZTZmZGQ2NTh8ZnN0b3wzMTA0MjI1NzA4fDEwMDAwfDJ8MHw4fDI1fDAxNTkzOWE4NTE0YTg2ZjhiYTVjZDFhZTY2Njc0MDI1fDB8MjY6MS4xODpoLjQxOjEuMjM6ZnwwfDU2NjA0MjM2NnwxNDE0NjcxMzAyLjE4MDk,/play_1kqvftg8t6tgu.0.4278037390.974127405.1414671289.mp4 (200 ОК)

Мне нужно получить последний линк (№3).
Каждый GET запрос имеет в заголовках Location URL, на который будет осуществляться редирект.
Проблема в том, что у меня не получается с объекта jqXHR забрать Header('Location') при редиректах и не получается обработать StatusCode (302 или 200). Запрос не попадает под метод error, AJAX проходит все редиректы и начинает загрузку файла куда-то в кеш.
$.ajax({
    type: 'GET',
    url: link1,
    dataType: 'jsonp',
    crossDomain: true,
    statusCode: {
        302: function(jqXHR) { // сюда мы не попадаем
            var location = jqXHR.getResponseHeader('Location');
            console.log(location);
        }
    },
    error: function(jqXHR, textStatus, errorThrown) { // и сюда мы не попадаем
        var location = jqXHR.getResponseHeader('Location');
        console.log(location);
    }
});


Подскажите что-нибудь.
  • Вопрос задан
  • 3138 просмотров
Пригласить эксперта
Ответы на вопрос 1
vvpoloskin
@vvpoloskin
Инженер связи
Кажется, у вас не получится так сделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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