Angular 角度9-不允许下载。启动或实例化下载的帧是沙盒,但标志‘;允许下载’;未设置 大家好:)

Angular 角度9-不允许下载。启动或实例化下载的帧是沙盒,但标志‘;允许下载’;未设置 大家好:),angular,download,Angular,Download,当我尝试在应用程序中下载文件时,控制台中出现以下警告: 不允许下载。启动或实例化下载的帧已沙盒化,但未设置“允许下载”标志。看见https://www.chromestatus.com/feature/5706745674465280 有关更多详细信息。 component.html <a class="download-document-link" #downloadDocumentLink download></a> 这个警告很奇怪,因为下载在C

当我尝试在应用程序中下载文件时,控制台中出现以下警告:
不允许下载。启动或实例化下载的帧已沙盒化,但未设置“允许下载”标志。看见https://www.chromestatus.com/feature/5706745674465280 有关更多详细信息。

component.html

<a class="download-document-link" #downloadDocumentLink download></a>
这个警告很奇怪,因为下载在Chrome83之前就已经开始工作了,我没有使用
iframe

您对此有经验吗?

找到了解决方案!这个问题不是来自Chrome。这与我们的web服务器配置有关。它没有标志:
内容安全策略“沙盒允许下载”:)

签出此链接可能会有所帮助,您可以尝试使用filesaver模块,以避免任何下载问题。我尝试使用ngx filesaver,但行为是相同的:/您能为您遇到的问题添加stackblitz演示吗,也许我现在可以尝试找到解决方案,因为这是一个浏览器范围的问题,其他库可能会推出相同的解决方案,或者您可以针对特定的包解决github问题
  @ViewChild('downloadDocumentLink') private downloadDocumentLink: ElementRef;
  ....

  private downloadDocument(doc: string): void {
    const source = `data:application/${this.order.docType.toLowerCase()};base64,${doc}`;
    const fileName = `order-${this.order.orderId}.${this.order.docType.toLowerCase()}`;
    const link = this.downloadDocumentLink.nativeElement;

    // IE workaround
    if (window.navigator && window.navigator.msSaveBlob) {
      saveDocumentIE(doc, fileName, this.order);
    } else {
      link.href = source;
      link.target = '_blank';
      link.download = fileName;
      link.click();
    }
  }