Средство просмотра документов Google не отображает URL-адрес хранилища Firebase в iframe из-за политики одного и того же происхождения

Я читал об этой ошибке, но предлагаемые решения, похоже, не работают для файлов .doc / .docx.

Я создаю веб-приложение, которое включает отображение файлов pdf / doc. Файлы хранятся в хранилище Google, и я использую метод getDownloadURL() Firebase, чтобы получить ссылку, которую я могу использовать в качестве источника в <iframe>. Это отлично работает напрямую с файлами PDF. Однако, учитывая, что это прямое отображение для файлов doc / docx невозможно, я попытался отобразить их через Google Docs Viewer, взяв сгенерированный URL-адрес и добавив его следующим образом:

https://docs.google.com/gview?url=https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/filename?alt=media&token=a-b-c-1-2-3

Это дает Refused to display <URL> in a frame because it set X-Frame-Options to same origin ошибку. Я также пробовал добавление &embedded=true к URL-адресу, как предлагалось в других аналогичных запросах, но это приводит к другой ошибке: Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist. Я подумал, что это может быть проблема с синтаксическим анализом URL из-за символа" & ", поэтому я изменил ее на «% 26», но ошибка «sameorigin» сохраняется.

Я не уверен, как с этим справиться, и я буду очень признателен за любые рекомендации о том, как решить эту проблему (или альтернативные способы решения проблемы).


person patrice99    schedule 19.06.2020    source источник
comment
Здравствуйте, Patrice99, вы решили эту проблему. У меня такая же потребность, и я сталкиваюсь с той же ошибкой. Я даже установил CORS в хранилище Google, чтобы разрешить *. Спасибо   -  person RmR    schedule 01.08.2020
comment
Я получил его, используя решение из этого сообщения: stackoverflow.com/questions/56388987/   -  person RmR    schedule 01.08.2020


Ответы (1)


Документы Google создают собственные объекты хранилища и будут обслуживать только эти объекты. Он не будет отображать другие объекты, которые находятся в формате doc / docx из других репозиториев.

Похоже, вам нужен способ рендеринга загруженных вами объектов (с помощью Firebase) в GCS. У меня нет опыта в этой конкретной работе, но я предлагаю вам попробовать найти какое-нибудь программное обеспечение, которое делает это. Например, при быстром поиске в Интернете я нашел Визуализировать файл docx в браузере.

person Mike Schwartz    schedule 19.06.2020
comment
Ссылки в этом ответе немного устарели / не работают, и почти все другие решения, которые я искал, используют программу просмотра документов Google (или эквивалент Microsoft). Программное обеспечение, которое конвертирует docx в HTML (например), не то, что я ищу для моего варианта использования, поэтому мне нужно решение, которое работает в этом контексте. - person patrice99; 20.06.2020