Biblioteca de JavaScript para incrustar MS Word y PDF en HTML - entre sitios

este codigo

<embed src="http://www.star.le.ac.uk/~slc25/curry.pdf" type="application/pdf" />

<iframe src="http://docs.google.com/gview?url=https://d9db56472fd41226d193-1e5e0d4b7948acaf6080b0dce0b35ed5.ssl.cf1.rackcdn.com/spectools/docs/wd-spectools-word-sample-04.doc&embedded=true"></iframe>

incrusta un documento PDF y un documento de MS Word en una página web HTML.

Sin embargo, para MS Word, depende de Google, que tiene la costumbre de ofrecer cosas interesantes y luego retirarlas, justo cuando la gente se vuelve dependiente de ellas; así que me gustaría algo sobre lo que tengo control: una biblioteca JS de mi servidor.

Encontré ViewerJs , que es un FOSS excelente; simplemente mire las demostraciones .

Por desgracia, dice "Debido a la forma en que su navegador se protege contra los riesgos de seguridad (lo cual es algo muy bueno), ViewerJS solo funciona en documentos que residen en su propio servidor".

Entiendo que están tratando de evitar ataques de Cross Site Scripting, pero tengo el requisito de incrustar documentos de un sitio diferente (que también está bajo mi control).

¿Alguien sabe de una biblioteca JS gratuita que me permita incrustar documentos de MS Word y PDF en una página web cuando esos documentos provienen de un dominio diferente al de la página web?


[Actualización] Tal vez solo lo expliqué mal.

El sitio A aloja los documentos, que deben estar incrustados en una página en el sitio B.

Controlo el sitio A y también proporciono el código para la página única del sitio B que debe mostrar el documento incrustado.

El propietario del sitio B cargará esa página en su sitio una vez, después de que la haya codificado, pero no hará ningún otro cambio en el sitio B. El usuario final recibe una URL por correo electrónico, con un enlace a la página en el sitio B con algunos parámetros para indicar lo que se debe incrustar


[Actualización ++] Este Plunk lo hace, pero usa Google Docs, y preferiría no confiar en ningún código de un sitio de terceros (no me importa el código de terceros; solo lo quiero en mi sitio)

¿Ninguno? ¿Ni siquiera por un bono? Estaría feliz de otorgar más puntos por una buena respuesta. Muchos más puntos

Respuestas (1)

El uso de otra biblioteca no resuelve nada, esta es una característica de seguridad del navegador.

Puede hacer que el primer sitio descargue una copia del archivo antes de mostrarlo.

Pero si tiene control sobre el servidor externo, puede configurar el acceso de origen cruzado a sus archivos. Lea acerca de la especificación CORS.

En Apache, hágalo habilitando el módulo mod_headers y luego, en .htaccess o configuración de host virtual

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "http://site2.com"
</IfModule>

o:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>
Google docs lo gestiona. Solo quiero algo que haga lo mismo, pero sobre el código del cual tengo control, no Google. Tengo el control del servidor que aloja los archivos DOC/PDF, pero no el servidor que sirve las páginas web.
Si no tiene tal control sobre el servidor/sitio externo, no puede hacer esto de otra manera que no sea haciendo que el primer sitio descargue una copia antes de mostrarlo, sin importar qué biblioteca de visualización use.
¿Me estoy perdiendo algo? El código que doy arriba incrusta 2 archivos buscados en Google al azar, un PDF y un MS Word, en mi página web. Parece que no hay problemas entre sitios. Sin embargo, MS Word está incrustado usando algún código en el sitio web de Google y prefiero usar un código sobre el cual tengo control. Consulte la actualización de la pregunta, con más explicaciones.
[Este Plunk] (lo logra). Por desgracia, parece que no puedo hacer que funcione en mi sitio ... todavía :-(
@Mawg: ¿Se suponía que su último comentario contenía un enlace?
Dos palabras - D'y oh!. Gracias, Nicolaus, olvidé vincular a jsfiddle.net/e6p244xt