Pdf.js: error al cargar pdf en una URL extranjera con pdf.js

Creado en 5 abr. 2016  ·  22Comentarios  ·  Fuente: mozilla/pdf.js

Hola,
Tengo este error cuando quiero cargar pdf desde una URL extranjera

Error: el origen del archivo no coincide con el del espectador
lanzar un nuevo error ('el origen del archivo no coincide con el del espectador');

¡por favor ayuda!

Comentario más útil

Resuelvo comentar estas líneas en viewer.js

if (fileOrigin! == viewerOrigin) {
lanzar un nuevo error ('el origen del archivo no coincide con el del espectador');
}

Todos 22 comentarios

Se hace a propósito, consulte el n. ° 6916. Modifique viewer.js para incluir los orígenes de sus hosts en la lista HOSTED_VIEWER_ORIGINS. Cerrando como respondido.

Gracias @yurydelendik
Pero no se como esta respuesta me ayuda

Pero no se como esta respuesta me ayuda

Modifique viewer.js para incluir los orígenes de sus hosts en la lista HOSTED_VIEWER_ORIGINS.

Lo hice pero no se como llamar a mi archivo pdf remoto

Lo hice pero no se como llamar a mi archivo pdf remoto

Por favor explique. También puede proporcionar la siguiente información:

  • ¿Qué es la URL para el espectador, incluido el parámetro de archivo?
  • ¿Qué se cambió en el código viewer.js?
  • ¿Cómo se configuraron los encabezados CORS en el servidor que aloja PDF?

Mi archivo pdf está en cloudinary.
Y cuando puse el acceso en la variable DEFAULT_URL, obtuve un error
Error: el origen del visor de archivos no coincide
lanzar un nuevo Error ('el origen del visor de archivos no coincide con \' s ');

Resuelvo comentar estas líneas en viewer.js

if (fileOrigin! == viewerOrigin) {
lanzar un nuevo error ('el origen del archivo no coincide con el del espectador');
}

No comentes la lógica. Use console.log () para ver si su fileOrigin y viewerOrigin coinciden. Asegúrese de que al menos una entrada en su objeto HOSTED_VIEWER_ORIGINS coincida con viewerOrigin y el error "_File origin does not match viewer_" desaparecerá.

Agrega esto:

console.log('fileOrigin', fileOrigin);
console.log('viewerOrigin', viewerOrigin);

... justo encima:

if (fileOrigin !== viewerOrigin) {
throw new Error('file origin does not match viewer\'s');
}

Apostaría un centavo a que te falta (o tienes) una barra inclinada adicional al final de tu URL como hice yo (descubrí cuando la consola registraba esas dos vars).

Espero que esto ayude a alguien.

Sería bueno poder configurar la matriz HOSTED_VIEWER_ORIGINS con expresiones regulares / comodines.

Para permitir dominios de Mozilla no codificados, tengo que modificar el código fuente de un archivo construido de 10k líneas llamado viewer.js.

@gildassamuel me salvas el día !!

La solución adecuada es abrir viewer.js y agregar el host de su archivo a HOSTED_VIEWER_ORIGINS
var HOSTED_VIEWER_ORIGINS = ['null', '.....'];

No elimine el código de verificación: |

Tengo el mismo problema (el origen del archivo no coincide con el del visor) en UWP con un archivo pdf local. ¿Qué entrada exactamente se debe agregar a HOSTED_VIEWER_ORIGINS para una ruta local?

Para cualquier otra persona que use esto dentro de una aplicación, tuve que agregar 'file: //' para permitir que las rutas locales funcionen.

var HOSTED_VIEWER_ORIGINS = [
'nulo',
' http://mozilla.github.io ',
' https://mozilla.github.io ',
'file: //' // visor local en la aplicación
];

En mi caso, estaba codificando localmente y tuve el mismo problema y lo resolví agregando mi dirección local :

var HOSTED_VIEWER_ORIGINS = [
       'null',
       'http://mozilla.github.io',
       'https://mozilla.github.io',
       'http://localhost:5000'
];

Pero no elimine el código de verificación :

if (fileOrigin !== viewerOrigin) {
       throw new Error('file origin does not match viewer\'s');
}

Creo que agregar estas 2 líneas será una buena solución. Su IP local será detectada automáticamente (dondequiera que inicie su aplicación)

  var LOCAL_AUTO_DETECT_ORIGIN = window.location.origin;

  var HOSTED_VIEWER_ORIGINS = ['null', 'http://mozilla.github.io', 'https://mozilla.github.io'];

  HOSTED_VIEWER_ORIGINS.push(LOCAL_AUTO_DETECT_ORIGIN);

Se hace a propósito, consulte el n. ° 6916. Modifique viewer.js para incluir los orígenes de sus hosts en la lista HOSTED_VIEWER_ORIGINS. Cerrando como respondido.

me ayudó

Es un problema muy grave, cualquiera que sea la forma en que aún no se ha resuelto.

El acceso para buscar en ' https: //dmain/file.pdf ' desde el origen ' http: // localhost ' ha sido bloqueado por la política de CORS: No hay un encabezado 'Access-Control-Allow-Origin' presente en el recurso solicitado. Si una respuesta opaca satisface sus necesidades, configure el modo de la solicitud en 'no-cors' para obtener el recurso con CORS deshabilitado.

Hola,

Hay alguna razón para esto ?

es responsabilidad del navegador preocuparse por la política de cors, no pdfjs
Creo que este cheque debería eliminarse.

He agregado return; en la parte superior de la función validateFileURL y ahora funciona bien, puedo cargar pdf desde amazon s3.

como mencionó @ IK77 , ¿puede proporcionar una razón para esto?

bueno, encontré esto: https://github.com/mozilla/pdf.js/pull/6916
@ IK77

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

liuzhen2008 picture liuzhen2008  ·  4Comentarios

zerr0s picture zerr0s  ·  3Comentarios

hp011235 picture hp011235  ·  4Comentarios

brandonros picture brandonros  ·  3Comentarios

AlexP3 picture AlexP3  ·  3Comentarios