2015-04-22 2 views
3

Я бы хотел, чтобы мое веб-приложение предназначалось для . Добавить на главный экран для пользователей на Android + Chrome. (вдохновленный: Chromium Blog entry)Служебный работник, бросающий ошибки при извлечении MP3-аудио

Для этого мне нужен рабочий работает, даже манекен. (Хрому нужен Service Worker в качестве доказательства того, что я серьезно отношусь к веб-приложениям)

Итак, я создал манекена Service Worker без содержания. Он обслуживается правильными заголовками no-cache, обслуживается через HTTPS и распространяется на весь домен.

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

jQuery('<audio><source src="/beep.mp3" type="audio/mpeg"></source></audio>'); 

... моя консоль показывает некоторые несчастий (взяты из Chrome Canary для лучшей передачи сообщений от службы рабочего потока , но в основном тот же выход в течение Chrome):

Mixed Content: The page at 'https://my.domain.com/some/page' was loaded over HTTPS, but requested an insecure video ''. This content should also be served over HTTPS. 

GET https://my.domain.com/beep.mp3 400 (Service Worker Fallback Required) 

Я полагаю, что важно отметить, что, очевидно, я не извлекая ресурс напрямую, просто создание элемента и позволяя браузер извлечь MP3.

MP3 действительно набирается (я могу запустить метод .play() на аудиоэлементе). Просто ошибки в моем консольном журнале накапливаются и заставляют меня подозревать, насколько надежным этот подход. Кроме того, кстати, в Канарских (но не текущих) сбой изменит мой индикатор «HTTPS lock» с зеленого на «предупреждение» (так, будущая проблема).

Источник звука относится к тому же домену, что и страница, и оба являются HTTPS. Таким образом, сообщение «Смешанное содержимое» из потока рабочего пользователя является странным; он ссылается на видео с '' в качестве URL-адреса.

Вопрос: Я делаю что-то неправильно или это ошибка Chrome? Нужно ли мне больше, чем пустой (пустой) рабочий службы? Если я делаю что-то не так, я бы хотел найти решение лучшей практики/долгосрочного типа, а не взломать что-то вместе, но я возьму то, что смогу получить. ;)

+0

попробуйте использовать весь URL в атрибуте SRC: https://my.domain.com/beep.mp3 – Anarcociclista

+0

Где сервисный код уборщица? –

ответ

0

кажется, ошибка. Это вопрос о коде Google:

https://code.google.com/p/chromium/issues/detail?id=477685

+0

Не уверен, что это одна и та же ошибка. Эта ошибка звучит, связанная с CORS, но все, что я делаю, это тот же самый домен, тот же протокол (я пробовал с и без схемы + хост, без разницы). В предлагаемом решении для работы/решения также был задействован сервисный работник, который специально переписывал запрос, тогда как мой сервисный работник не должен ничего делать, кроме как напрямую передавать запрос/ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^