版本为15,跨域导出时不能文件类型
本帖最后由 Crystal.Li 于 2021-4-28 14:06 编辑报表是前后端分离的,前端是VUE,后端是NETCORE,
当跨域导出时,不能识别导出的文件类型,如下图:
按chrome的F12,打开Network选项卡,再次点导出抓取请求的地址,
把该地址在浏览器的新标签打开,能正常导出(直接下载文件)
下图是2种方式的请求数据截图,右边是复制URL新标签打开能正常导出
由此总结是由于跨域原因导致不能识别导出文件类型,希望官方团队能模拟这种场景排查下问题,谢谢!
研发反馈,您可以在跨域设置中再添加这么一条关于header的设置尝试下:
HttpContext.Current.Response.AddHeader("Access-Control-Expose-Headers", "Content-Disposition");
您那边能提供下重现问题的demo 吗?
JSViewer 默认的导出按钮是直接下载导出文件的,并没有另存为对话框,因为不确定您那边具体的实现是怎么样的,无法重现问题呢 DEMO在附件中了,
下载下来之后,
后端用VS的控制台启动,
前端用npm run dev启动,
然后点导出,DEMO的情况和我们遇到的情况类似,
本来要导出xls,但却导出成rdlx,
只要把前端webpack.config里的代理取消注释,
并把Viewer.vue的11到13行注释,
再把App.vue的26行注释,放开27行,
就能正常导出,
但我们生产环境前端是打包成纯静态的,不能像DEMO里这样做代理,
必须跨域,所以就存在导出错误的问题
前端的端口是8081,后端已经做了跨域配置了 hexllo 发表于 2021-4-28 16:51
前端的端口是8081,后端已经做了跨域配置了
好的我们这边尽快验证一下给您回复 您好,这个问题我们已经验证了,确实存在您说的问题,我们会将此问题提交给研发团队处理,有解决方案了第一时间通知您~:P 加了这个之后就解决了,非常感谢! hexllo 发表于 2021-5-10 16:05
加了这个之后就解决了,非常感谢!
不客气~~ 方便的话,您可以对我的服务评分哦,5分为非常满意~
页:
[1]