Pdf.js: erro ao carregar pdf em url estrangeiro com pdf.js

Criado em 5 abr. 2016  ·  22Comentários  ·  Fonte: mozilla/pdf.js

Olá,
Eu tenho este erro quando quero carregar o pdf da url estrangeira

Erro: a origem do arquivo não corresponde à do visualizador
lançar um novo erro ('a origem do arquivo não corresponde ao visualizador');

por favor ajude!

Comentários muito úteis

Resolvo comentar essas linhas em viewer.js

if (fileOrigin! == viewerOrigin) {
lançar um novo erro ('a origem do arquivo não corresponde ao visualizador');
}

Todos 22 comentários

É feito de propósito, consulte # 6916. Modifique viewer.js para incluir suas origens de hosts na lista HOSTED_VIEWER_ORIGINS. Fechando conforme respondido.

Obrigado @yurydelendik
Mas eu não sei como essa resposta me ajuda

Mas eu não sei como essa resposta me ajuda

Modifique viewer.js para incluir suas origens de hosts na lista HOSTED_VIEWER_ORIGINS.

Eu fiz isso, mas não sei como chamar meu arquivo pdf remoto

Eu fiz isso, mas não sei como chamar meu arquivo pdf remoto

Por favor explique. Você também pode fornecer as seguintes informações:

  • o que é URL para o visualizador incluindo o parâmetro de arquivo?
  • o que foi alterado no código viewer.js?
  • como foram configurados os cabeçalhos CORS no servidor que hospeda o PDF?

Meu arquivo pdf está no cloudinary.
E quando coloquei o acesso na variável DEFAULT_URL, obtive o erro
Erro: a origem do visualizador do arquivo não corresponde
lançar um novo erro ('origem do visualizador de arquivo não corresponde a \' s ');

Resolvo comentar essas linhas em viewer.js

if (fileOrigin! == viewerOrigin) {
lançar um novo erro ('a origem do arquivo não corresponde ao visualizador');
}

Não comente a lógica. Use console.log () para ver se seu fileOrigin e viewerOrigin correspondem. Certifique-se de que pelo menos uma entrada em seu objeto HOSTED_VIEWER_ORIGINS corresponda ao viewerOrigin e que o erro "_File origin does not matcher_" desapareça.

Adicione isso:

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

... logo acima:

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

Aposto que você está perdendo (ou tem) uma barra adicional no final do seu URL, como eu fiz (descoberto quando o console registrou esses dois vars).

Espero que isso ajude alguém.

Seria bom ser capaz de configurar o array HOSTED_VIEWER_ORIGINS com regex / wildchars.

Para permitir domínios Mozilla não codificados, tenho que modificar o código-fonte de um arquivo construído de 10k linhas chamado viewer.js?

@gildassamuel você salva meu dia !!

A correção adequada é abrir viewer.js e anexar o host do seu arquivo a HOSTED_VIEWER_ORIGINS
var HOSTED_VIEWER_ORIGINS = ['null', '.....'];

Não remova o código de verificação: |

Tenho o mesmo problema (a origem do arquivo não corresponde à do visualizador) no UWP com o arquivo PDF local. Qual entrada exatamente deve ser adicionada a HOSTED_VIEWER_ORIGINS para um caminho local?

Para qualquer outra pessoa usando isso dentro de um aplicativo, eu tive que adicionar 'file: //' para permitir que os caminhos locais funcionassem.

var HOSTED_VIEWER_ORIGINS = [
'nulo',
' http://mozilla.github.io ',
' https://mozilla.github.io ',
'file: //' // visualizador local no aplicativo
];

No meu caso, estava codificando localmente, tive o mesmo problema e resolvi adicionando meu endereço local :

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

Mas não remova o código de verificação :

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

Acho que adicionar essas 2 linhas será uma boa solução. Seu ip local será detectado automaticamente (onde quer que você inicie seu aplicativo)

  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);

É feito de propósito, consulte # 6916. Modifique viewer.js para incluir suas origens de hosts na lista HOSTED_VIEWER_ORIGINS. Fechando conforme respondido.

me ajudou

é um problema muito ruim, de qualquer forma ainda não foi resolvido.

O acesso para buscar em ' https: //dmain/file.pdf ' da origem ' http: // localhost ' foi bloqueado pela política CORS: Nenhum cabeçalho 'Access-Control-Allow-Origin' está presente no recurso solicitado. Se uma resposta opaca atender às suas necessidades, defina o modo da solicitação como 'no-cors' para buscar o recurso com o CORS desativado.

Olá,

existe um motivo para isso?

é responsabilidade do navegador se preocupar com a política de cors, não com pdfjs
Eu acho que este cheque deve ser removido.

Eu adicionei return; no topo da função validateFileURL e ele funciona bem agora, posso carregar o pdf do Amazon S3.

como @ IK77 mencionou, você pode fornecer um motivo para isso?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

kleins05 picture kleins05  ·  3Comentários

azetutu picture azetutu  ·  4Comentários

smit-modi picture smit-modi  ·  3Comentários

PeterNerlich picture PeterNerlich  ·  3Comentários

liuzhen2008 picture liuzhen2008  ·  4Comentários