Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将PDF链接作为文件下载到同一页面中,而不是在浏览器中打开_Javascript_Typescript_Download_Angular8_Ionic5 - Fatal编程技术网

Javascript 将PDF链接作为文件下载到同一页面中,而不是在浏览器中打开

Javascript 将PDF链接作为文件下载到同一页面中,而不是在浏览器中打开,javascript,typescript,download,angular8,ionic5,Javascript,Typescript,Download,Angular8,Ionic5,在我的应用程序编写的离子5和8,我需要下载多个PDF链接(文件)在同一页点击链接。我试过了,但PDF链接正在浏览器中打开。请求帮助我实现此功能 相同来源时,“下载”属性显示正常,否则它将显示为与没有“下载”属性时相同。 列出三种解决方案: 将文件打包为浏览器无法直接打开的文件类型,例如ZIP 通过后端转发,后端请求第三方资源并将其返回到前端,前端使用文件保护程序等工具保存文件 如果URL指向的第三方资源配置了CORS,则可以通过XHR请求该文件 当来源相同时,“下载”属性显示为正常,否则它将显示

在我的应用程序编写的离子5和8,我需要下载多个PDF链接(文件)在同一页点击链接。我试过了,但PDF链接正在浏览器中打开。请求帮助我实现此功能


相同来源时,“下载”属性显示正常,否则它将显示为与没有“下载”属性时相同。 列出三种解决方案:

  • 将文件打包为浏览器无法直接打开的文件类型,例如ZIP
  • 通过后端转发,后端请求第三方资源并将其返回到前端,前端使用文件保护程序等工具保存文件
  • 如果URL指向的第三方资源配置了CORS,则可以通过XHR请求该文件

  • 当来源相同时,“下载”属性显示为正常,否则它将显示为不带
    download
    属性。 列出三种解决方案:

  • 将文件打包为浏览器无法直接打开的文件类型,例如ZIP
  • 通过后端转发,后端请求第三方资源并将其返回到前端,前端使用文件保护程序等工具保存文件
  • 如果URL指向的第三方资源配置了CORS,则可以通过XHR请求该文件

  • 我尝试了上述方法,文件下载没有发生。前提是URL指向的第三方资源配置了CORS。我尝试了上述方法,文件下载没有发生。前提是URL指向的第三方资源配置了CORS
    downloadFileXHR(filePath, fileName) {
       var xhh = new XMLHttpRequest()
       xhh.open('get', filePath)
       xhh.responseType = 'blob'
       xhh.onreadystatechange = function () {
         if (xhh.readyState === 4 && xhh.status === 200) {
           var blob = new Blob([xhh.response])
           var csvUrl = URL.createObjectURL(blob)
           var link = document.createElement('a')
           link.href = csvUrl
           link.download = fileName
           link.click()
         }
       }
       xhh.send()