Доступ к заголовкам HTML5 Audio Response - PullRequest
1 голос
/ 05 ноября 2019

Возможно ли каким-либо образом получить доступ к заголовкам ответа HTTP источника аудио HTML5 (чтобы я мог их прочитать) в Javascript?

<audio id="myaudio" controls>
   <source src="/test.mp3" type="audio/mpeg">
</audio> 

EDIT2:

Кажется возможным получить доступ к заголовкам с помощью ( работников службы ) Я пробовал что-то вроде:

if ('serviceWorker' in navigator) {
   console.log('CLIENT: service worker registration in progress.');
   navigator.serviceWorker.register('/service-worker.js').then(function(){
      console.log('CLIENT: service worker registration complete.');
     }, function() {
          console.log('CLIENT: service worker registration failure.');
     });
} else {
   console.log('CLIENT: service worker is not supported.');
}

Мой файл service-worker.js выглядит (только в качестве примера!):

self.addEventListener('fetch', function(event) {
   console.log("SENDING REQUEST: " + event.request.url);
   if(event.request.url === 'https://localhost/test.mp3') {
      event.respondWith(
         fetch(event.request.url, {
            method: "GET",
            headers: {
               "Authorization": "myToken",
            },
            redirect: "follow"
         }).then(function(response) {
            //check for response header here...
            return response;
         })
      );    
    }
 });

Проблема в том, что я не могу отладить код (с Firefox 70),это немного усложняет тестирование, и я не могу создать окончательный ответ ...

1 Ответ

0 голосов
/ 05 ноября 2019

Если вы просто хотите просмотреть заголовки, загрузите страницу в Chrome и нажмите f12, чтобы открыть инструменты разработчика.

Все ответы будут находиться на вкладке «Сеть», щелкните ответ, и вы увидите данныесвязан с ним (включая заголовки http).

Изменить

Если вы хотите сделать это в js / jquery, лучше всего сделать запрос ajax для каждого источникаа затем получить ответ таким образом.

Например ...

let url = $('#myaudio').find('source').first().attr('src');

$.ajax({
    //ajax config with `url` for audio source
})
.done(function(response, textStatus, xhr){
    let headers = xhr.getAllResponseHeaders();
});
...