PDFTron WebViewer - 尝试显示存储在 Azure BLOB 存储中的 XOD 文件时出现 CORS 错误

PDFTron WebViewer - CORS error on trying to display XOD file stored in Azure BLOB storage

我正在使用 WebViewer 2.2.2 并尝试在 ASP.NET MVC 5 视图上显示存储在 Azure Blob 存储中的 XOD 文件,url 为:https://somename.blob.core.windows.net/containername/GettingsStarted.xod

我在浏览器控制台中收到 CORS 错误,显示为“CORS 未启用或未找到此请求的匹配规则。

我发现 URL https://www.pdftron.com/webviewer/demo/tutorials/xdomain.html 可以启用 CORS。我应该在 proxy.html 文件中提供什么 URL,因为存储在 Azure BLOB 存储中的每个 XOD blob 都会有一个不同的 URL。

https://somename.blob.core.windows.net/containername/ 部分相同,但不同 XOD 的文件名不同。那么,如何在 proxy.html 文件中传递 XOD 文件名?

这是处理 CORS 问题的正确方法https://www.pdftron.com/webviewer/demo/tutorials/xdomain.html还是有其他更简单的方法?

    @model XODViewer.DataModel.Document

    @{
        ViewBag.Title = "Document";
    }

    @Scripts.Render("~/bundles/jquery")
    <script src="~/lib/WebViewer.min.js"></script>

    <style>
        #viewer {
            width: 1024px;
            height: 600px;
        }
    </style>

    <script>
        $(function () {
                var viewerElement = document.getElementById('viewer');
                var myWebViewer = new PDFTron.WebViewer({
                    path: 'lib',
                    type: 'html5',
                    documentType: "xod",
 initialDoc:"https://somename.blob.core.windows.net/containername/GettingsStarted.xod",
                    config: '../../lib/WebViewerConfig.js',
                    streaming: true,
                    enableAnnotations: false,
                    enableOfflineMode: false,
                    enableReadOnlyMode: true,
                    azureWorkaround: true
                }, viewerElement);
            });
    </script>

    <div id="viewer"class="xod-viewer-div">
    </div>

根据您的描述,我按照tutorial开始使用WebViewer。我可能会遇到与您提到的相同的错误,如下所示:

<script>
    $(function() {
        var viewerElement = document.getElementById("viewer");
        var myWebViewer = new PDFTron.WebViewer({
            path: "/libs",
            type: "html5",
            documentType:'xod',
            initialDoc:"https://brucechen.blob.core.windows.net/docs/GettingStarted.xod"
        }, viewerElement);
    });
</script>

对于跨域访问,您可以利用 Microsoft Azure Storage Explorer 配置 CORS 设置,如下所示:

结果