weixin_67833139 2024-03-02 13:33 采纳率: 77.8%
浏览 28
已采纳

vue中微软的office online, 图片不能预览

vue中微软的office online, 图片不能预览

 const typeArr = ['csv', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'rtf', 'bmp', 'jpg', 'jpeg', 'png', 'tif', 'gif', 'pcx', 'tga', 'exif', 'fpx', 'svg',
              'psd', 'cdr', 'pcd', 'dxf', 'ufo', 'eps', 'ai', 'raw', 'WMF', 'webp', 'avif', 'apng']
            // const typeArr = ['csv', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'rtf']

            let url = ''
            if (typeArr.indexOf(File.fileFormat) !== -1) {
              console.log(8888)
              // 使用微软的office online
              url = 'https://view.officeapps.live.com/op/view.aspx?src=' + File.absoUrl
            } else {
              console.log(999)
              // url = item.absoUrl
              url = 'https://view.xdocin.com/xdoc?_xdoc=' + File.absoUrl
            }
            console.log(url, 'url')
            // window.open()居中打开
            const width = 1000; const height = 800
            const top = (window.screen.availHeight - height) / 2
            const left = (window.screen.availWidth - width) / 2
            window.open(url, '', 'width=' + width + ',height=' + height + ',top=' + top + ',left=' + left)

报错如下:

img

  • 写回答

5条回答 默认 最新

  • GISer Liu 2024-03-02 13:34
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据您提供的代码和报错信息,问题似乎出现在使用微软的Office Online预览图片时。根据报错信息,您可能遇到了跨域访问的问题。
    解决这个问题的思路和方案如下:

    1. 跨域访问问题: 微软的Office Online服务可能限制了对跨域资源的访问。为了解决这个问题,您需要确保您的网站与微软的Office Online服务位于同一个域或者您的网站已经被微软的Office Online服务所允许访问。
    2. 代码修改: 您的代码看起来已经正确地构建了URL并尝试在新窗口中打开它。但在处理跨域问题时,您需要确保所请求的资源能够被成功加载。这可能需要您在URL中添加一些额外的参数或者处理一些授权问题。
      下面是一种可能的解决方案:
      javascriptCopy code
      // 添加一个额外的参数,比如为了处理跨域访问,您可以尝试添加如下的参数
      url = 'https://view.officeapps.live.com/op/view.aspx?src=' + encodeURIComponent(File.absoUrl) + '&embedded=true';
      // 使用 window.open() 打开预览页面
      window.open(url, '', 'width=' + width + ',height=' + height + ',top=' + top + ',left=' + left);
      
      在这个解决方案中,我们通过在URL中添加了一个名为embedded的参数,并将其值设置为true,来试图处理跨域访问的问题。同时,我们还使用了encodeURIComponent()函数对URL中的特殊字符进行了编码,以确保URL的正确性。
      您可以尝试使用这个修改后的代码,看看是否能够解决您遇到的问题。如果仍然无法解决,可能需要进一步研究微软Office
      Online服务的跨域访问策略,并相应地调整您的代码或者请求方式。
      希望这个解决方案能够帮助您解决问题!如果您有任何其他疑问或者需要进一步的帮助,请随时提出。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已采纳回答 7月3日
  • 创建了问题 3月2日

悬赏问题

  • ¥15 flutter网页应用用python的http服务器访问速度慢
  • ¥15 VESTA绘图原子颜色显示异常
  • ¥15 天翼云搭建多ip l2tp
  • ¥15 python实现CAD识图
  • ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
  • ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
  • ¥20 单细胞数据注释时报错
  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)
  • ¥15 通过AT指令控制esp8266发送信息
  • ¥15 有哪些AI工具提供可以通过代码上传EXCEL文件的API接口,并反馈分析结果