【ARJS】open报表提示跨域怎么办
最早打开的报表都是本项目内的没问题,这样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 您好,可以参考一下这个教程:https://gcdn.grapecity.com.cn/showtopic-94825-1-1.html
本帖最后由 qq525566534 于 2023-7-10 17:51 编辑
Bella.Yuan 发表于 2023-7-10 15:10
您好,可以参考一下这个教程:https://gcdn.grapecity.com.cn/showtopic-94825-1-1.html
这个子报表节点里面只能套子报表的地址吗,不能直接是子报表的json吗?我之前设计了多个报表了,现在我想套到一个空报表里,这样就不用再设计了
qq525566534 发表于 2023-7-10 16:45
var js={"Name":"Report","Width":"21cm","Layers":[{"Name":"default"}],"CustomProperties":[{"Name":" ...
我这边尝试复现;
出现的唯一问题是找不到子报表
我把子报表删除后,可以正常打开
如果咱们这边需要加载子报表:
viewer.open(js, {
ResourceLocator: {
getResource: (resourceId) => {
var reportUrl;
switch (resourceId) {
case "/_Tmp_Rpts/20230710/Onea314d3ce-06c6-49f8-a5bc-2478f48bfeba.rdlx-json":
reportUrl = "reports/VehicleDetails.rdlx-json";
break;
default:
reportUrl = null;
break;
}
if (reportUrl)
return "";
},
},
});最终需要返回子报表的报表json。就可以正常获取了
Felix.Li 发表于 2023-7-10 17:50
我这边尝试复现;
出现的唯一问题是找不到子报表
这个子报表节点里面只能套子报表的地址吗,不能直接是子报表的json吗?我之前设计了多个报表了,现在我想套到一个空报表里,这样就不用再设计了 基于浏览器安全策略,跨域的JSON无法被直接使用。这样就面临两种选择,要么部署的时候不要跨域,要么采用一种古老的叫做JSONP的技术。参见:https://stackoverflow.com/questions/2067472/what-is-jsonp-and-why-was-it-created
页:
[1]