当前位置: 首页 > 知识库问答 >
问题:

javascript - vue2预览pdf出现跨域问题如何解决?

方璞
2023-11-27

vue2调试h5预览pdf的问题?

  1. pdf地址 http://www.xxxx.org.cn/TrendFile/YB_SD_HJ_1mon_20231125_SDMF.pdf 在谷歌浏览器里面可以直接预览,但是放到本地vue的代码里面会报错跨域,iframe也会报错跨域,有什么方法可以正常预览
  2. 把静态pdf文件放到static 或者asset文件夹下 通过路径预览,会出现 404的问题

求教该如何正常预览出pdf

<template>  <div>    <pdf :page="pageNum" :src="pdfUrl" @progress="loadedRatio = $event" @num-pages="pageTotalNum = $event"></pdf>  </div></template><script>import pdf from 'vue-pdf'export default {  data() {    return {      pdfUrl: '../../../static/1.pdf',      pageTotalNum: 1,      pageNum: 1,      loadedRatio: 0    }  },  components: {    pdf  },  methods: {    handlePdfChange(val) {      this.pageNum = Number(val)    }  }}</script>

共有3个答案

董建德
2023-11-27

肯定是能放本地的,能看看404错误的地址你是怎么写的

周辰沛
2023-11-27

vue.config.js修改配置即可

'/TrendFile': {        target: 'http://www.xxxxc.com',        // eslint-disable-next-line no-undef        ws: false,        changOrigin: true,        pathRewrite: {          '^/': '/'        }      }
印瑾瑜
2023-11-27

这个问题似乎涉及到如何在Vue.js应用程序中正确地预览PDF文件。

  1. 关于跨域问题:在本地开发环境中,预览PDF文件时可能会遇到跨域问题。这是因为浏览器安全策略禁止从不同源(协议、域名或端口)加载资源。你可以尝试使用代理服务器来避免这个问题。在Vue.js中,你可以使用vue-cli-service dev:proxy命令来设置代理。例如,如果你的PDF文件位于http://www.sdmf.org.cn/TrendFile/,你可以在命令行中输入以下命令:
vue-cli-service dev:proxy http://www.sdmf.org.cn/TrendFile/

然后,在项目中创建一个名为public/index.html的文件(如果不存在),并在其中添加以下代码来预览PDF文件:

<iframe src="/TrendFile/YB_SD_HJ_1mon_20231125_SDMF.pdf" width="100%" height="600"></iframe>

请注意,你需要将路径更改为实际的PDF文件路径。然后,在本地开发环境中运行应用程序时,应该能够预览PDF文件而不会遇到跨域问题。

  1. 关于404问题:如果你将PDF文件放入publicassets文件夹中并尝试通过路径预览它,出现404错误可能是因为文件的路径不正确或文件不存在。请确保PDF文件位于正确的文件夹中,并且路径是正确的。例如,如果PDF文件位于public/TrendFile/YB_SD_HJ_1mon_20231125_SDMF.pdf,则可以通过以下方式预览它:
<iframe src="/TrendFile/YB_SD_HJ_1mon_20231125_SDMF.pdf" width="100%" height="600"></iframe>

请注意,路径应该是相对于应用程序的根目录的。如果问题仍然存在,请检查文件是否存在以及路径是否正确。

 类似资料:
  • 不需要加载外部贴图和模型文件的three.js案例,可以直接使用浏览器打开.html案例文件,通常一个threejs项目案例往往都会加载一些外部模型,因此打开threejs案例要搭建一个本地的静态服务器,否则的话,threejs案例无法正常打开,浏览器控制台会提示跨域问题。 如果你知道怎么搭建本地静态服务器,自己用任何方式搭建都可以。如果不了解的话,建议使用nodejs去快速搭建一个本地静态服务器

  • vue2前端跨域问题,后端放置到公网上,所有人都可以访问,还配置了access-control-allow-origin为*,前端拿接口地址到浏览器可以拿到数据,使用apiPost测试,接口可以拿到数据,但是放到前端代码里面就跨域,如下图 vue2前端跨域问题

  • 本文向大家介绍javascript跨域方法、原理以及出现问题解决方法(详解),包括了javascript跨域方法、原理以及出现问题解决方法(详解)的使用技巧和注意事项,需要的朋友参考一下 javascript跨域访问是web开发者经常遇到的问题,什么是跨域,一个域上加载的脚本获取或操作另一个域上的文档属性,下面将列出三种实现javascript跨域方法: 1.基于iframe实现跨域      基

  • 本文向大家介绍Spring Boot 中如何解决跨域问题 ?相关面试题,主要包含被问及Spring Boot 中如何解决跨域问题 ?时的应答技巧和注意事项,需要的朋友参考一下 跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORS,Cross-origin re

  • 问题内容: 可以说,我有一个名为example.com的网站,在该网站上嵌入了iframe.net域的iframe,现在我想读取iframe的内容并传递一些参数以显示文本消息。像Hi和用户名一样。 现在的问题是,这无法在两者之间建立连接,甚至无法获得我使用以下方法使用的iframe的innerHTML 它将引发错误“权限被拒绝访问属性” 有谁知道如何在跨域平台中读写 问题答案: 如果您无法控制框架

  • 阿里云的图片,例如https://syx-hzy5200.oss-cn-shenzhen.aliyuncs.com/c17ed98cdb36...(不同图片这个不一样c17ed98cdb36418498caf32f95c0666f),前端项目中需要有一个需求是将url转图片 代码是 但是ccess to fetch at 'https://syx-hzy5200.oss-cn-shenzhen.a