Моя первая публикация на stackoverflow, поэтому заранее извиняюсь за любые ошибки в протоколе.
Я создаю веб-приложение Django, в котором есть страница, позволяющая пользователю записыватьаудиоклип, используя микрофон, затем сохраните этот клип на сервере. Итак, пользовательский поток:
- На странице со списком прошлых записей нажмите «Новый».
- Вы попадаете на страницу с некоторыми элементами управления рекордера, где вы нажимаете «Запись». ".
- Скажите что-нибудь.
- Нажмите кнопку" Стоп ", чтобы остановить запись и сделать доступной кнопку" Сохранить ".
- Нажмите кнопку" Сохранить ";появится всплывающее окно с сообщением о том, что сохранение прошло успешно, а затем вы вернетесь на «индексную» страницу со списком записей (с последней записью вверху).
Я использую опус-рекордер Криса Рудмина для обработки записи и написал собственный пользовательский javascript для отправки аудио в виде большого двоичного объекта обратно на сервер в виде XMLHttpRequest.
На сервере есть представление Django, которое обрабатывает POST,и отправляет обратно JSON с информацией об успехе / неудаче.
На клиентской стороне пользователю показывается предупреждение со статусом, а затем страница перенаправляется (используя window.location.href и URL, отправленный в JSON с сервера. ) на страницу указателя.
Вот проблема: Все работает нормально при первой загрузке страницы, включая сохранение записи и перенаправление на страницу указателя. Однако со страницы «указатель», если я теперь нажимаю «Создать», когда я возвращаюсь на страницу записи, она не работает. Консоль показывает мне сообщение
Recording is not supported in this browser
Теперь, если я закомментирую window.location.href, который выполняет перенаправление, вручную введите URL-адрес страницы индекса и затем нажмите «Создать», чтобы перейтиназад все отлично работает. Что-то в этом редиректе все портит, но я не могу понять, что.
ОБНОВЛЕНИЕ
Я пытался заменить window.location. href с
window.location.replace
и
window.location.assign
, но ни один из них не решил проблему.