【问题标题】:pdf opening unsafe blob in new tab angularjspdf在新标签中打开不安全的blob
【发布时间】:2017-07-30 02:33:15
【问题描述】:

我正在尝试打开从服务器调用的 pdf 文件,我收到了数组缓冲区格式的文件。我尝试了多种方法来使用 $window.open 在新选项卡中打开 pdf 文件并将文件转换为其他形式。在您建议下载之前,它可以工作,但我想在新选项卡中打开它,并且可以安全地以弹出窗口的形式查看。

将 pdf 转换为 blob 后,会使用此 url 打开: “斑点:http://console:8012/3c8b129d-3544-4f7e-a606-cf4b5eb6e1f3” 我的问题是它不安全,因为它以 blob 开头:并且 chrome 将其标记为不安全。

有人知道如何解决这个问题吗? 谢谢

【问题讨论】:

标签: javascript angularjs pdf blob arraybuffer


【解决方案1】:

在 Angular 应用的配置块中注入 $compileProvider 并添加以下行:

 $compileProvider.aHrefSanitizationWhitelist(/^\s*(blob):/);

【讨论】:

  • 感谢您的回答,但我已经写好了,但 blob 仍然被标记为不安全
  • 实际上我昨天也在做同样的事情,它对我有用。
  • 我将它添加到 main.js 文件中,例如 app.config(function($compileProvider) { $compileProvider.aHrefSanitizationWhitelist(/^\s*(blob):/); });这样对吗?
【解决方案2】:

AngularJS v1.6 的默认清理白名单是1:

var  aHrefSanitizationWhitelist = /^\s*(https?|ftp|mailto|tel|file):/,
    imgSrcSanitizationWhitelist = /^\s*((https?|ftp|file|blob):|data:image\/)/;

使用$compileProvider.aHrefSanitizationWhitelist methodblob 添加到其白名单中。

app.config(function($compileProvider) {
    var hrefWhiteList = /^\s*(https?|ftp|mailto|tel|file|blob):/;
    $compileProvider.aHrefSanitizationWhitelist(hrefWhiteList);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-26
    • 2016-10-21
    • 2017-09-13
    • 2017-01-24
    • 2017-05-24
    • 2012-09-01
    • 2018-12-14
    • 2022-11-18
    相关资源
    最近更新 更多