找回密码
 立即注册

QQ登录

只需一步,快速开始

AR_hsl88

注册会员

9

主题

46

帖子

133

积分

注册会员

积分
133
AR_hsl88
注册会员   /  发表于:2022-10-12 14:06  /   查看:8724  /  回复:31
1金币

IIS+ASP.NET+activeReports12+htmlviewer
报表在查看时无法预览,预览这里加载错误



会提示跨域请求的问题,
Access to XMLHttpRequest at 'https://auth.siam.sinopec.com/idp/profile/SAML2/Redirect/SSO?SAMLRequest=lVPNbhshEL5X6jsg7jYsXtUJWjta2apkqWkj2%2B0hNwKzCtIu2MAmaZ%2B%2Bw9qJLVV1lAuHmfn%2BBqhuXrqWPEGI1rsZLcac3sw%2Ff6r2haz79OjWsO8hJrJazqg1XwoxmTa8meqyKfG4EpyXDxor5vpBqCklv16ZBDKRVYw9rFxMyiUscSFGBR8VYssnUlzLko%2BvyrIo%2BeSekiXKWKfSgH5MaRclYwo9jKNVHR7O70CPte%2BYNTu2C76xLbBNfftNsDUYG0Anttn8yLJ3Kkb7BDPaqDYCJRjSRbkvZrQPTnoVbZROdRBl0jJTSPQrkTN57VuKGyCkGtyHA%2FYyENUgZOd0%2Fuo8%2FmnPPVfswHZgxu1%2BR5LV8s63Vv8mX33oVLqskSvWjJphVKagXLTgEiV12%2FrnRQCVMO829BiXHWQW3hmbbcUPhshoxNe9QQkNa7yaYHXuHVtnzfm7d1Wxt9kjMfsfc8VOnt9WdXyDYIYXiQMJXtLJ46m2aDHDGpoPpr04pqXOrFje1rc%2FEZNn8vN69sHkIP%2FKH5NccD40z%2F%2FX%2FC8%3D' (redirected from 'http://szl.sinopec.com/ActiveReports.ar12?Token=6c4d3439-8504-4ed7-b684-8a3f09011d67&Command=Export&ExportType=Html&WebViewer=true&RenderMode=Galley&Generation=1') from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.


一开始在测试环境只有一台服务器,直接用http协议+IP地址访问系统,报表查看都是正常的。


然后现在报表上了正式生产环境,使用了https协议访问,系统访问使用了https,但是报表服务加载好像还是用的http, 目前尝试了两种方案
一是在IIS中添加http响应头
Access-Control-Allow-Headers       Content-Type, api_key, Authorization 和 Access-Control-Allow-Origin          *   
二是在global   Application_EndRequest中 针对 ReportService.asmx 请求添加强行替换http为https
这两种方案都不行,都不好使。

最终尝试在ReportViewer.aspx这个展示页面,head添加了<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
这个方法对谷歌浏览器和Edge浏览器可以正常加载报表,但是对搜狗浏览器、360浏览器还是加载错误,还是提示has been blocked by CORS policy: No 'Access-Control-Allow-Origin'

所以想请教一下各路大神,这种使用https访问系统,ActiveReport报表却仍使用http加载,导致加载错误有什么解决方法?

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

最佳答案

查看完整内容

这个我们这边验证一下,看如何把报表发布成HTTPS,或者咱们可以先把咱们的项目发布成HTTP,应该暂时可以规避这个问题

31 个回复

倒序浏览
最佳答案
最佳答案
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2022-10-12 14:06:23
来自 30#
AR_hsl88 发表于 2022-10-21 12:59
是同一个项目。

我是先用AR报表设计器,编辑好报表模板(rdlx文件),设计好格式、绑定数据保存,然后 ...

这个我们这边验证一下,看如何把报表发布成HTTPS,或者咱们可以先把咱们的项目发布成HTTP,应该暂时可以规避这个问题
回复 使用道具 举报
AR_hsl88
注册会员   /  发表于:2022-10-12 14:11:30
2#
KearneyKang   
Lenka.Guo   
Crystal.Li
几位大神看过来,指导一下
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2022-10-12 15:12:38
3#
AR_hsl88 发表于 2022-10-12 14:11
KearneyKang   
Lenka.Guo   
Crystal.Li

您可以参考一下这个帖子:
https://gcdn.grapecity.com.cn/showtopic-152917-1-1.html
回复 使用道具 举报
AR_hsl88
注册会员   /  发表于:2022-10-12 15:28:19
4#
Felix.Li 发表于 2022-10-12 15:12
您可以参考一下这个帖子:
https://gcdn.grapecity.com.cn/showtopic-152917-1-1.html

大佬  , 这个帖子里面说通过 Nginx 做反向代理,转发请求到AR中,还是不懂, 具体怎么设置啊
回复 使用道具 举报
AR_hsl88
注册会员   /  发表于:2022-10-12 16:11:38
5#
Felix.Li 发表于 2022-10-12 15:12
您可以参考一下这个帖子:
https://gcdn.grapecity.com.cn/showtopic-152917-1-1.html

参考其他人的提问和版主的解答,我在Web.config文件里面添加了
<customHeaders>
                <add name="Access-Control-Allow-Origin" value="*" />
                <add name="Access-Control-Allow-Headers" value="AuthToken, Authorization, Origin, Content-Type, Accept, X-Requested-With" />
        </customHeaders>
但是对360浏览器、搜狗浏览器还是不能加载
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2022-10-12 16:21:52
6#
本帖最后由 Felix.Li 于 2022-10-12 16:22 编辑
AR_hsl88 发表于 2022-10-12 15:28
大佬  , 这个帖子里面说通过 Nginx 做反向代理,转发请求到AR中,还是不懂, 具体怎么设置啊

这个需要您自己配置Nginx进行重定向,把原本https的请求重定向到本地AR的。我在网上找了一些教程,您可以看一下。
http://t.zoukankan.com/thewindkee-p-12873179.html
http://www.manongjc.com/detail/52-nbxyunurqufwoeo.html
回复 使用道具 举报
AR_hsl88
注册会员   /  发表于:2022-10-12 16:50:57
7#
Felix.Li 发表于 2022-10-12 16:21
这个需要您自己配置Nginx进行重定向,把原本https的请求重定向到本地AR的。我在网上找了一些教程,您可以 ...

这个配置Nginx就是要给https绑定证书吗? 我现在确实是没有证书的
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2022-10-12 18:20:47
8#
AR_hsl88 发表于 2022-10-12 16:50
这个配置Nginx就是要给https绑定证书吗? 我现在确实是没有证书的

这个估计和浏览器有关,我们这边也得先调查一下,您这边也搜一下关于Content-Security-Policy和浏览器的使用问题,我们这边理论上配置:
<customHeaders>
                <add name="Access-Control-Allow-Origin" value="*" />
                <add name="Access-Control-Allow-Headers" value="AuthToken, Authorization, Origin, Content-Type, Accept, X-Requested-With" />
        </customHeaders>
这个就可以了
回复 使用道具 举报
AR_hsl88
注册会员   /  发表于:2022-10-18 09:27:44
9#
抱歉没及时回复你。这个配置我已经加了,但是360跟搜狗浏览器还是加载错误,谷歌和Edge浏览器就是可以的。
最开始启用https协议之后各浏览器都不能加载,然后我在页面头部加了<meta http-equiv=“Content-Security-Policy” content=“upgrade-insecure-requests” /> 然后在谷歌浏览器和Edge浏览器就可以加载,现在在webconfig增加了设置以后,还是就这两个浏览器能加载,是这两种设置冲突吗?
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部