Pdf.js: ошибка при загрузке pdf на чужой url с pdf.js

Созданный на 5 апр. 2016  ·  22Комментарии  ·  Источник: mozilla/pdf.js

Привет,
У меня возникает эта ошибка, когда я хочу загрузить PDF-файл с чужого URL

Ошибка: происхождение файла не совпадает с программой просмотра
выдать новую ошибку («происхождение файла не соответствует просмотру»);

пожалуйста помоги!

Самый полезный комментарий

Решаю прокомментировать эти строки в viewer.js

if (fileOrigin! == viewerOrigin) {
выдать новую ошибку («происхождение файла не соответствует просмотру»);
}

Все 22 Комментарий

Это сделано специально, см. №6916. Измените viewer.js, чтобы включить источники ваших хостов в список HOSTED_VIEWER_ORIGINS. Закрытие, как ответили.

Спасибо @yurydelendik
Но я не знаю, как этот ответ мне поможет

Но я не знаю, как этот ответ мне поможет

Измените viewer.js, чтобы включить источники ваших хостов в список HOSTED_VIEWER_ORIGINS.

Я сделал это, но не знаю, как вызвать удаленный файл pdf

Я сделал это, но не знаю, как вызвать удаленный файл pdf

Пожалуйста, объясни. Вы также можете предоставить следующую информацию:

  • что такое URL для средства просмотра, включая параметр файла?
  • что было изменено в коде viewer.js?
  • как были настроены заголовки CORS на сервере, на котором размещен PDF?

Мой PDF-файл находится в облачном хранилище.
И когда я поместил доступ в переменную DEFAULT_URL, я получил ошибку
Ошибка: источник просмотра файлов не совпадает
выбросить новую ошибку ('происхождение средства просмотра файлов не совпадает');

Решаю прокомментировать эти строки в viewer.js

if (fileOrigin! == viewerOrigin) {
выдать новую ошибку («происхождение файла не соответствует просмотру»);
}

Не комментируйте логику. Используйте console.log (), чтобы узнать, совпадают ли ваши fileOrigin и viewerOrigin. Убедитесь, что хотя бы одна запись в вашем объекте HOSTED_VIEWER_ORIGINS соответствует viewerOrigin, и ошибка «_File origin does not match viewer_» исчезнет.

Добавь это:

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

... прямо над:

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

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

Надеюсь, это кому-то поможет.

Было бы неплохо иметь возможность настроить массив HOSTED_VIEWER_ORIGINS с регулярным выражением / подстановочными знаками.

Чтобы разрешить использование не жестко запрограммированных доменов Mozilla, мне нужно изменить исходный код созданного файла размером 10 тыс. Строк с именем viewer.js?

@gildassamuel, ты спас мне день !!

Правильное исправление - открыть viewer.js и добавить хост вашего файла в HOSTED_VIEWER_ORIGINS
var HOSTED_VIEWER_ORIGINS = ['null', '.....'];

Не удаляйте проверочный код: |

У меня такая же проблема (происхождение файла не соответствует программе просмотра) в UWP с локальным файлом pdf. Какая именно запись должна быть добавлена ​​в 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');
}

Думаю, добавление этих двух строк будет хорошим решением. Ваш локальный 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. Измените viewer.js, чтобы включить источники ваших хостов в список HOSTED_VIEWER_ORIGINS. Закрытие, как ответили.

помог мне

это очень плохая проблема, как бы то ни было, она еще не решена.

Доступ к выборке по адресу http: // localhost заблокирован политикой CORS: на запрошенном ресурсе отсутствует заголовок Access-Control-Allow-Origin. Если непрозрачный ответ соответствует вашим потребностям, установите для режима запроса значение «no-cors», чтобы получить ресурс с отключенным CORS.

Привет,

Для этого есть причина ?

это ответственность браузера за заботу о политике cors, а не о pdfjs
Думаю, эту проверку следует убрать.

Я добавил return; в верхнюю часть функции validateFileURL, и теперь она работает нормально, я могу загрузить PDF-файл с Amazon s3.

как упоминалось в @ IK77 , не могли бы вы

ну я нашел это: https://github.com/mozilla/pdf.js/pull/6916
@ IK77

Была ли эта страница полезной?
0 / 5 - 0 рейтинги