pdf.js 在线浏览pdf组件构建与安装注意事项
2017-09-25 14:55
357 查看
PDF.js v1.8.188 (build: ad1023ff)
Message: file origin does not match viewer's
1.如果web服务器是iis,请添加.properties的MIME类型为application/octet-stream, 否则本地化无法启用,默认语言为英文。
2.pdf.js是不支持跨域文件加载的,比如你的页面地址为http://www.a.com, pdf地址为:http://www.b.com/my.pdf。 直接加载是不会成功的。会报 “file origin does not match viewer”错误。
分析一下源码:
首先,如果Viewer.html所在的主机是否在HOSTED_VIEWER_ORIGINS列表中定义,如果定义,则以下不检查同源。如果不存在,则检查同源。因此可以在将viewer.html所在的主机加到HOSTED_VIEWER_ORIGINS中即可实现跨域。 这样做比较安全。第2029行如果部署觉得麻烦,暂不考虑安全性的话,可以在开头设置一个跨域标识位:
var CORS = true;表示支持跨域,不进行同源判断。
var CORS = true;表示不支持跨域,进行同源检测。
Message: file origin does not match viewer's
4.注意
1.如果web服务器是iis,请添加.properties的MIME类型为application/octet-stream, 否则本地化无法启用,默认语言为英文。2.pdf.js是不支持跨域文件加载的,比如你的页面地址为http://www.a.com, pdf地址为:http://www.b.com/my.pdf。 直接加载是不会成功的。会报 “file origin does not match viewer”错误。
分析一下源码:
123456789101112131415161718192021222324 | var validateFileURL; var HOSTED_VIEWER_ORIGINS = [ 'null', 'http://mozilla.github.io', 'https://mozilla.github.io' ]; validateFileURL = function validateFileURL(file) { try { var viewerOrigin = new URL(window.location.href).origin || 'null'; if (HOSTED_VIEWER_ORIGINS.indexOf(viewerOrigin) >= 0) { return; } var fileOrigin = new URL(file, window.location.href).origin; if (fileOrigin !== viewerOrigin) { throw new Error('file origin does not match viewer\'s'); } } catch (e) { var message = e && e.message; var loadingErrorMessage = mozL10n.get('loading_error', null, 'An error occurred while loading the PDF.'); var moreInfo = { message: message }; PDFViewerApplication.error(loadingErrorMessage, moreInfo); throw e; } }; |
1 2 3 | if(!CORS){ validateFileURL(file); } |
var CORS = true;表示不支持跨域,进行同源检测。
相关文章推荐
- vue中引用pdf.js,实现在线浏览禁止下载、打印的功能
- window安装node.js express注意事项
- VirtualBox安装Ubuntu搭建js环境的注意事项
- Android使用js方案实现在线浏览pdf文档
- node.js , webstrom ,mongodb安装的时候注意事项。不错的markdown教程
- Android Studio在线安装Android SDK注意事项
- Office web apps 打补丁后(安装PDF在线浏览) 错误解决
- MysqlForWindows安装图解与注意事项pdf分享
- 浏览器在线浏览PDF文件之pdf.js
- CentOS 7 最小化安装后的注意事项及一些必备组件的安装
- js api for Arcgis 在线编辑注意事项
- CentOS 7 最小化安装后的注意事项及一些必备组件的安装
- node.js , webstrom ,mongodb安装的时候注意事项。不错的markdown教程
- Delphi2010组件/控件安装方法和注意事项
- PDF.js插件的使用--在线浏览PDF文件
- vue.js安装及之注意事项
- CentOS 7 最小化安装后的注意事项及一些必备组件的安装
- 在线浏览PDF之PDF.JS (附demo)
- 网页PDF在线浏览 jquery.media.js 视频教程 PPT教程
- 在线浏览PDF之PDF.JS (附demo)