找回密码
 立即注册

QQ登录

只需一步,快速开始

qq525566534
中级会员   /  发表于:2023-7-10 08:54  /   查看:3615  /  回复:6
1金币
最早打开的报表都是本项目内的没问题,这样viewer.open('/rps/rpt1.rdlx-json')

但现在项目把所有报表放到一个专门的项目里了,报表地址也就跟着变成了外部用ip访问的了,open('http://111.116.251.118:8032/Arjs/a5/a5e67d9c-92bf-43f9-9faf-e9178e49fcff.rdlx-json')就提示跨域了怎么办呢

最佳答案

查看完整内容

您可以参考上面回答的,或者直接让子报表可以按照这个配置请求到 比如你的主报表访问地址是; http://localhost:8080/1.rdlx-json 子报表配置的是/report/2.rdlx-json 实际访问地址就是http://localhost:8080/report/2.rdlx-json

6 个回复

正序浏览
Leo
超级版主   /  发表于:2024-2-23 14:22:04
7#
基于浏览器安全策略,跨域的JSON无法被直接使用。这样就面临两种选择,要么部署的时候不要跨域,要么采用一种古老的叫做JSONP的技术。参见:https://stackoverflow.com/questi ... -why-was-it-created
回复 使用道具 举报
qq525566534
中级会员   /  发表于:2023-7-10 17:52:40
5#
Felix.Li 发表于 2023-7-10 17:50
我这边尝试复现;

出现的唯一问题是找不到子报表



这个子报表节点里面只能套子报表的地址吗,不能直接是子报表的json吗?我之前设计了多个报表了,现在我想套到一个空报表里,这样就不用再设计了

本帖子中包含更多资源

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

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-7-10 17:50:19
4#
qq525566534 发表于 2023-7-10 16:45
var js={"Name":"Report","Width":"21cm","Layers":[{"Name":"default"}],"CustomProperties":[{"Name":" ...

我这边尝试复现;

出现的唯一问题是找不到子报表
我把子报表删除后,可以正常打开


如果咱们这边需要加载子报表:
  1. viewer.open(js, {
  2.     ResourceLocator: {
  3.       getResource: (resourceId) => {
  4.         var reportUrl;
  5.         switch (resourceId) {
  6.           case "/_Tmp_Rpts/20230710/Onea314d3ce-06c6-49f8-a5bc-2478f48bfeba.rdlx-json":
  7.             reportUrl = "reports/VehicleDetails.rdlx-json";
  8.             break;
  9.           default:
  10.             reportUrl = null;
  11.             break;
  12.         }
  13.         if (reportUrl)
  14.           return "";
  15.       },
  16.     },
  17.   });
复制代码
最终需要返回子报表的报表json。就可以正常获取了

本帖子中包含更多资源

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

x
回复 使用道具 举报
qq525566534
中级会员   /  发表于:2023-7-10 16:45:24
3#
本帖最后由 qq525566534 于 2023-7-10 17:51 编辑


这个子报表节点里面只能套子报表的地址吗,不能直接是子报表的json吗?我之前设计了多个报表了,现在我想套到一个空报表里,这样就不用再设计了

本帖子中包含更多资源

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

x
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2023-7-10 15:10:18
2#
您好,可以参考一下这个教程:https://gcdn.grapecity.com.cn/showtopic-94825-1-1.html

回复 使用道具 举报
最佳答案
最佳答案
Felix.LiWyn认证
超级版主   /  发表于:2023-7-10 08:54:24
来自 6#
您可以参考上面回答的,或者直接让子报表可以按照这个配置请求到
比如你的主报表访问地址是;
http://localhost:8080/1.rdlx-json

子报表配置的是/report/2.rdlx-json

实际访问地址就是http://localhost:8080/report/2.rdlx-json
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部