У меня были действительно плохие времена, когда я пытался заставить Chrome работать с загрузкой файлов из другого источника, например, в облачных файлах. В настоящее время я работаю над localhost:88
, чтобы попытаться заставить это работать.
Прежде чем я пойму причину, по которой это так запутанно, это мой PHP-код на стороне сервера, который выдвигает ссылку, которая должна быть загружена клиенту:
$link = $youtubeApi->getDownloadLink("IcR3lu_HEN0");
/*
* I'm over-simplifying this section, though the main take is that I'm using a
* backend api to convert a YT video into a link that directs to a streamable <video>.
*/
$this->pushToFrontend($link);
Тип ссылок, предоставляемых веб-интерфейсу, похож на эта ссылка (гиперссылка, поскольку она большая).
Имея это в виду, давайте представим, что ссылка ссылается ниже как $link
:
<a href="<?=$link?>" target="_y" download>Download</a>
<!-- or -->
<a href="<?=$link?>" target="_y" download="this is a file.mp4">Download</a>
Они оба просто открывают новую вкладку, но без начала загрузки . Что меня смутило, так это то, что это работает на Edge / FireFox. Chrome кажется недостающим звеном?
Что является самым запутывающим / раздражающим аспектом этой ошибки, так это отсутствие каких-либо ошибок в консоли, моя консоль полностью очищается, когда я нажимаю на ссылку, и ничего не предоставляется в ответ на то, что может произойти. (Звонок с localhost:88
).
Я провел тщательное исследование по этому вопросу: от внесения изменений заголовка CORS до добавления файлов на мой сервер, которые я могу вместо этого использовать для получения данных, и многое, многое другое. Для ссылки на некоторые вопросы стека:
- Принудительное сохранение как
- PHP Принудительная загрузка гиперссылки на YouTube
- Атрибут загрузки Chrome не работает
Я надеюсь, что это потому, что я запрашиваю у http
, когда требуется https
- если это так, я могу продолжить разработку, и полное решение будет завершено, как только мы перейдем к https
сервер. В противном случае, у меня действительно запутанная ошибка на руках.
Спасибо за любую помощь.