#javascript #вконтакте #chrome_extension #cors
Я разрабатываю музыкальное расширение для Google Chrome и столкнулся с такой проблемой. Музыка ВКонтакте располагается на нескольких серверах, которые находятся в зоне *.vk-cdn.net Некоторые сервера поддерживают CORS и таким образом я могу получить их контент по JS accept-ranges:bytes access-control-allow-methods:GET, HEAD, OPTIONS access-control-allow-origin:* cache-control:max-age=604800 content-length:5292838 content-type:audio/mpeg date:Wed, 13 Jan 2016 20:32:05 GMT expires:Wed, 20 Jan 2016 20:32:05 GMT last-modified:Wed, 13 Jan 2016 16:45:43 GMT server:nginx status:200 OK version:HTTP/1.1 А некоторые сервера, которые на Apache, не отдают этих заголовков Accept-Ranges:bytes Cache-Control:max-age=1468800 Connection:keep-alive Content-Length:655080 Content-Type:audio/mpeg Date:Wed, 13 Jan 2016 20:34:52 GMT ETag:"4b23d502-9fee8" Expires:Sat, 30 Jan 2016 20:34:52 GMT Last-Modified:Sat, 12 Dec 2009 17:38:10 GMT Server:Apache Таким образом, запросы к таким серверам через JS невозможны, так как Chrome c 45 версии это запретил. Получаем ошибку о том, MediaElementAudioSource выдает нули вместо контента, из-за CORS MediaElementAudioSource outputs zeroes due to CORS access restrictions for https://psv4.vk.me/c613321/u3197020/audios/00a66935ba83.mp3 Браузер все равно проигрывает эти файлы, что меня подталкивает на мысль, что возможность получить доступ к содержимому все-таки есть. Я пытался общаться с поддержкой ВК, но получил ответ, что на баг-трекер сайта давно забили и никто исправлять не будет это. Можно ли как-то обойти это ограничение?
Ответы
Ответ 1
Вы можете поставить где-нибудь свой прокси сервер, который будет проксировать аудио с серверов ВК и добавлять заголовки чтоб всё корректно работало через AJAX. Для таких целей наверно лучше всего подойдет nginx
Комментариев нет:
Отправить комментарий