找回密码
 立即注册

QQ登录

只需一步,快速开始

hexllo
金牌服务用户   /  发表于:2021-4-28 11:07  /   查看:3595  /  回复:8
1金币
本帖最后由 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");

8 个回复

倒序浏览
最佳答案
最佳答案
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-4-28 11:07:52
来自 7#
研发反馈,您可以在跨域设置中再添加这么一条关于header的设置尝试下:
HttpContext.Current.Response.AddHeader("Access-Control-Expose-Headers", "Content-Disposition");

回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-4-28 14:06:00
2#
您那边能提供下重现问题的demo 吗?
JSViewer 默认的导出按钮是直接下载导出文件的,并没有另存为对话框,因为不确定您那边具体的实现是怎么样的,无法重现问题呢
回复 使用道具 举报
hexllo
金牌服务用户   /  发表于:2021-4-28 16:50:51
3#
DEMO在附件中了,
下载下来之后,
后端用VS的控制台启动,
前端用npm run dev启动,
然后点导出,DEMO的情况和我们遇到的情况类似,
本来要导出xls,但却导出成rdlx,
只要把前端webpack.config里的代理取消注释,
并把Viewer.vue的11到13行注释,
再把App.vue的26行注释,放开27行,
就能正常导出,
但我们生产环境前端是打包成纯静态的,不能像DEMO里这样做代理,
必须跨域,所以就存在导出错误的问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
hexllo
金牌服务用户   /  发表于:2021-4-28 16:51:42
4#
前端的端口是8081,后端已经做了跨域配置了
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2021-4-28 17:20:01
5#
hexllo 发表于 2021-4-28 16:51
前端的端口是8081,后端已经做了跨域配置了

好的  我们这边尽快验证一下给您回复
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-4-30 10:33:19
6#
您好,这个问题我们已经验证了,确实存在您说的问题,我们会将此问题提交给研发团队处理,有解决方案了第一时间通知您~
回复 使用道具 举报
hexllo
金牌服务用户   /  发表于:2021-5-10 16:05:22
8#
加了这个之后就解决了,非常感谢!
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-5-10 16:09:52
9#
hexllo 发表于 2021-5-10 16:05
加了这个之后就解决了,非常感谢!

不客气~~ 方便的话,您可以对我的服务评分哦,5分为非常满意~

评分

参与人数 1满意度 +5 收起 理由
hexllo + 5

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部