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

时间:2017-03-06 18:03:59

标签: asp.net-mvc azure azure-storage-blobs pdftron

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

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

我找到了启用CORS的网址https://www.pdftron.com/webviewer/demo/tutorials/xdomain.html。我应该在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>

1 个答案:

答案 0 :(得分:1)

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

{{1}}

enter image description here

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

<强>结果

enter image description here