Я хочу загрузить видео на свой канал на Youtube, используя их
API.
Через запрос на свой сервер получаю токен для загрузки, а потом хочу загрузить видео с отображением процентов c помощью XHR2.
Кросс-доменная загрузка работает, т.к YT поддерживает CORS.
element = document.forms.uploadNewVideoForm.file;
var fd = new FormData();
console.log(element.files);
fd.append('token', $scope.uploadData.token);
fd.append('file', element.files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", $scope.uploadProgress, false);
xhr.addEventListener("load", $scope.uploadComplete, false);
xhr.addEventListener("error", $scope.uploadComplete, false);
xhr.addEventListener("abort", $scope.uploadComplete, false);
xhr.open("POST", $scope.uploadData.uploadUrl + '?nexturl=' + encodeURIComponent('http://local.app.com:8000/OK'));
xhr.onreadystatechange = function ( response ) {};
xhr.send(fd);
Но после успешной(!) загрузки Youtube перенаправляет пользователя на страницу
http://local.app.com:8000/OK,
Код:
|
POST http://uploads.gdata.youtube.com/action/FormDataUpload/<токен>?nexturl=http%3A%2F%2Flocal.app.com%3A8000%2FOK
302 Moved Temporarily
Location: http://local.app.com:8000/OK |
И вот здесь запрос вылетает с ошибкой, и нигде нет даже ссылки на перенаправляемый URL. Мне сам редирект не нужен, а только этот URL.
Вопрос заключается в том, можно ли получить значение URL, на который перенаправляют, или корректно заставить XHR2 обрабатывать редирект?