Pdf.js: pdf.jsを使用して外部URLにPDFをロードするときにエラーが発生しました

作成日 2016年04月05日  ·  22コメント  ·  ソース: mozilla/pdf.js

こんにちは、
外国のURLからPDFをロードしたいときにこのエラーが発生します

エラー:ファイルの出所がビューアの出所と一致しません
新しいエラーをスローします( 'ファイルの出所がビューアと一致しません');

助けてください!

最も参考になるコメント

私はviewer.jsでこの行にコメントすることを決心します

if(fileOrigin!== ViewerOrigin){
新しいエラーをスローします( 'ファイルの出所がビューアと一致しません');
}

全てのコメント22件

意図的に行われています。#6916を参照してください。 HOSTED_VIEWER_ORIGINSリストにホストのオリジンを含めるようにviewer.jsを変更します。 答えた通りに締めくくります。

ありがとう@yurydelendik
しかし、私はこの答えがどのように私を助けるのか分かりません

しかし、私はこの答えがどのように私を助けるのか分かりません

HOSTED_VIEWER_ORIGINSリストにホストのオリジンを含めるようにviewer.jsを変更します。

やりましたが、リモートpdfファイルの呼び出し方法がわかりません

やりましたが、リモートpdfファイルの呼び出し方法がわかりません

説明してください。 また、次の情報を提供できますか。

  • ファイルパラメータを含むビューアのURLは何ですか?
  • Viewer.jsコードで何が変更されましたか?
  • PDFをホストするサーバーでCORSヘッダーをどのように構成しましたか?

私のPDFファイルはcloudinaryにあります。
そして、アクセスをDEFAULT_URL変数に入れると、エラーが発生しました
エラー:ファイルビューアの原点が一致しません
新しいエラーをスローします( 'ファイルビューアのオリジンが\' s 'と一致しません);

私はviewer.jsでこの行にコメントすることを決心します

if(fileOrigin!== ViewerOrigin){
新しいエラーをスローします( 'ファイルの出所がビューアと一致しません');
}

ロジックをコメントアウトしないでください。 console.log()を使用して、fileOriginとviewerOriginが一致するかどうかを確認します。 HOSTED_VIEWER_ORIGINSオブジェクトの少なくとも1つのエントリがviewerOriginと一致し、「_ファイルの起点がviewer_と一致しません」エラーが消えることを確認してください。

これを追加:

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

...真上:

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

私が行ったように、URLの末尾にスラッシュが追加されていない(またはある)ニッケルに賭けます(コンソールがこれらの2つの変数をログに記録したときに発見されました)。

これが誰かを助けることを願っています。

正規表現/ワイルドカードを使用してHOSTED_VIEWER_ORIGINS配列を構成できると便利です。

ハードコードされていないMozillaドメインを許可するには、viewer.jsと呼ばれる10k行のビルドファイルのソースコードを変更する必要がありますか?

@gildassamuelあなたは私の日を救う!

適切な修正は、viewer.jsを開き、ファイルのホストをHOSTED_VIEWER_ORIGINSに追加することです。
var HOSTED_VIEWER_ORIGINS = ['null', '.....'];

チェックコードを削除しないでください:|

ローカルpdfファイルを使用したUWPで同じ問題が発生します(ファイルの出所がビューアの出所と一致しません)。 ローカルパスのHOSTED_VIEWER_ORIGINSに正確に追加する必要があるエントリはどれですか?

アプリ内でこれを使用している他の人のために、ローカルパスが機能するように「file://」を追加する必要がありました。

var HOSTED_VIEWER_ORIGINS = [
'ヌル'、
' http://mozilla.github.io '、
' https://mozilla.github.io '、
'file://' //アプリのローカルビューア
];

私の場合、ローカルでコーディングしていましたが、同じ問題が発生し、ローカルアドレスを追加することで解決しました。

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

ただし、チェックコードは削除しないでください。

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

これらの2行を追加することは良い解決策になると思います。 ローカルIPは自動的に検出されます(アプリケーションを起動する場所はどこでも)

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

意図的に行われています。#6916を参照してください。 HOSTED_VIEWER_ORIGINSリストにホストのオリジンを含めるようにviewer.jsを変更します。 答えた通りに締めくくります。

助けて頂きました

それは非常に悪い問題です。

起点 ' http:// localhost 'から ' https://dmain/file.pdf 'でフェッチするためのアクセスがCORSポリシーによってブロックされました: 'Access-Control-Allow-Origin'ヘッダーが要求されたリソースに存在しません。 不透明な応答がニーズに対応する場合は、リクエストのモードを「no-cors」に設定して、CORSを無効にしてリソースをフェッチします。

こんにちは、

これには理由がありますか?

pdfjsではなく、corsポリシーを気にするのはブラウザの責任です
このチェックは削除する必要があると思います。

validateFileURL関数の先頭にreturn;を追加しましたが、正常に動作するようになりました。Amazons3からPDFを読み込むことができます。

@ IK77が述べたように、この理由を教えてください。

まあ、私はこれを見つけました: https
@ IK77

このページは役に立ちましたか?
0 / 5 - 0 評価