我正在使用WebViewer 2.2.2並嘗試在ASP.NET MVC 5視圖中顯示存儲在Azure Blob存儲中的XOD文件,網址爲: https://somename.blob.core.windows.net/containername/GettingsStarted.xodPDFTron WebViewer - 嘗試顯示存儲在Azure BLOB存儲中的XOD文件時出現CORS錯誤
我得到了瀏覽器控制檯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>
MaxAgeInSeconds定義中指出「這定義秒瀏覽器的最大數目將緩存飛行前請求。由於這些「預先飛行」請求是可計費的,因此通常建議您將此值設置爲較高的數值,以便瀏覽器不會頻繁發出此「預先飛行」請求。(1)可以將其留給值爲100甚至可能更改爲50,因爲我相信一旦在WebViewer中下載了XOD,就不會再有瀏覽器發出請求(2)在PROD Azure實例中設置相同設置是否安全(3)任何PowerShell cmdlet例子 –
(1)對於MaxAgeInSeconds,您可以按照您的預期更改爲50(2)容器訪問級別是隻讀的,爲了更安全的方式,您可以爲特定原點添加CORS規則(3)您可以參考到這個[示例](https://gist.github.com/irwinwilliams/4cf93b6e2461c753ff125590650186ae)。 –