页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(本文档仅供参考)(nginx的方案源于网上资料,本文档仅供参考)

Smartbi 与第三方系统部署在不同的机器上,或者部署在同一机器不同的应用服务器域下,双方系统集成时经常出现跨域访问。

随着Chrome新版本对跨域cookie传递的限制趋严,苹果设备上Safari浏览器等对跨域cookie传递的限制,需要解决跨域问题的场景逐渐增多,而nginx的反向代理功能解决跨域是非常方便的,如下举例说明。

环境背景

nginx所在机器的ip:10.10.101.73

...

第三方系统和smartbi不在同一台服务器,则如果http://10.10.12.87:8080/SmartbiSSO下的页面通过iframe等方式引用http://10.10.202.17:18600/smartbi下的页面容易出现跨域问题导致chrome浏览器中不能单点登录,或者登录成功后无法正常使用报表的一些功能(比如跳转规则,客户端宏的子窗口调用父窗口的代码不能正常执行)的情况。

配置示例

基于上述环境,以下是nginx解决跨域问题的一个参考配置:

...

smartbi地址首页:http://10.10.101.73/smartbi

集成方案

如果在第三方系统下有一个页面:http://10.10.101.73/SmartbiSSO/report.jsp需要引用smartbi的报表,则report.jsp集成smartbi报表的地址需要使用http://10.10.101.73/smartbi/vision/openresource.jsp?resid=XXXXXX这种格式,对于访问第三方系统的用户,通过http://10.10.101.73/SmartbiSSO的入口去访问第三方系统的页面引用的smartbi报表就不会存在跨域问题。

...