Commit 58b1b50c authored by 陈精华's avatar 陈精华

修复:pdf.js 跨域问题

parent 8f75df15
...@@ -30,8 +30,6 @@ public class FilterConfiguration { ...@@ -30,8 +30,6 @@ public class FilterConfiguration {
Set<String> filterUri = new HashSet<>(); Set<String> filterUri = new HashSet<>();
filterUri.add("/onlinePreview"); filterUri.add("/onlinePreview");
filterUri.add("/picturesPreview"); filterUri.add("/picturesPreview");
filterUri.add("/getCorsFile");
filterUri.add("/addTask");
TrustHostFilter filter = new TrustHostFilter(); TrustHostFilter filter = new TrustHostFilter();
FilterRegistrationBean registrationBean = new FilterRegistrationBean(); FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(filter); registrationBean.setFilter(filter);
......
...@@ -2019,7 +2019,7 @@ var validateFileURL; ...@@ -2019,7 +2019,7 @@ var validateFileURL;
{ {
var HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; var HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"];
validateFileURL = function validateFileURL(file, base) { validateFileURL = function validateFileURL(file) {
if (file === undefined) { if (file === undefined) {
return; return;
} }
...@@ -2036,7 +2036,7 @@ var validateFileURL; ...@@ -2036,7 +2036,7 @@ var validateFileURL;
protocol = _ref11.protocol; protocol = _ref11.protocol;
if (origin !== viewerOrigin && protocol !== "blob:") { if (origin !== viewerOrigin && protocol !== "blob:") {
return (base.endsWith('/') ? base : base + '/') + 'getCorsFile?urlPath=' + encodeURIComponent(file); throw new Error("file origin does not match viewer's");
} }
} catch (ex) { } catch (ex) {
var message = ex && ex.message; var message = ex && ex.message;
...@@ -2089,14 +2089,12 @@ function loadAndEnablePDFBug(enabledTabs) { ...@@ -2089,14 +2089,12 @@ function loadAndEnablePDFBug(enabledTabs) {
function webViewerInitialized() { function webViewerInitialized() {
var appConfig = PDFViewerApplication.appConfig; var appConfig = PDFViewerApplication.appConfig;
var file; var file;
var base;
var disableDownload; var disableDownload;
var queryString = document.location.search.substring(1); var queryString = document.location.search.substring(1);
var params = (0, _ui_utils.parseQueryString)(queryString); var params = (0, _ui_utils.parseQueryString)(queryString);
file = "file" in params ? params.file : _app_options.AppOptions.get("defaultUrl"); file = "file" in params ? params.file : _app_options.AppOptions.get("defaultUrl");
base = 'base' in params ? params.base : appConfig.defaultUrl;
disableDownload = 'disabledownload' in params ? params.disabledownload : 'false'; disableDownload = 'disabledownload' in params ? params.disabledownload : 'false';
validateFileURL(file, base); validateFileURL(file);
var fileInput = document.createElement("input"); var fileInput = document.createElement("input");
fileInput.id = appConfig.openFileInputName; fileInput.id = appConfig.openFileInputName;
fileInput.className = "fileInput"; fileInput.className = "fileInput";
......
...@@ -21,7 +21,12 @@ ...@@ -21,7 +21,12 @@
</#if> </#if>
</body> </body>
<script type="text/javascript"> <script type="text/javascript">
document.getElementsByTagName('iframe')[0].src = "${baseUrl}pdfjs/web/viewer.html?base=${baseUrl}&file=" + encodeURIComponent('${finalUrl}') + "&disabledownload=${pdfDownloadDisable}"; var url = '${finalUrl}';
var baseUrl = '${baseUrl}'.endsWith('/') ? '${baseUrl}' : '${baseUrl}' + '/';
if (!url.startsWith(baseUrl)) {
url = baseUrl + 'getCorsFile?urlPath=' + encodeURIComponent(url);
}
document.getElementsByTagName('iframe')[0].src = "${baseUrl}pdfjs/web/viewer.html?file=" + encodeURIComponent(url) + "&disabledownload=${pdfDownloadDisable}";
document.getElementsByTagName('iframe')[0].height = document.documentElement.clientHeight - 10; document.getElementsByTagName('iframe')[0].height = document.documentElement.clientHeight - 10;
/** /**
* 页面变化调整高度 * 页面变化调整高度
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment