页面树结构
转至元数据结尾
转至元数据起始

问题描述

把报表集成到第三方系统,通过令牌登录方式实现了单独登录,但url拼接参数传值时传值失败。url格式如下:

http://10.10.202.17:18080/smartbi/vision/loginByToken?paramsInfo=[{"name":"产品类别","value":"饮料","displayValue":"饮料"}]&smartbiToken=267f8e7a69&targetPath=openresource.jsp?resid=Iff80818101845a315a31bfcd0184607630e60a22

原因分析

传参失败原因有三个

1、paramsInfo=[{"name":"产品类别","value":"饮料","displayValue":"饮料"}]放置的位置不正确。报表id和参数辅助都是一个整体,必须放到targetPath后,重定向时这些信息才不会丢失。

2、url存在中文,未进行base64编码

3、url存在特殊字符,未进行encode

解决办法

1、调整url参数位置

调整后url格式:http://10.10.202.17:18080/smartbi/vision/loginByToken?smartbiToken=267f8e7a69&targetPath=openresource.jsp?resid=Iff80818101845a315a31bfcd0184607630e60a22&paramsInfo=[{"name":"产品类别","value":"饮料","displayValue":"饮料"}]

2、使用Base64对参数部分([{"name":"产品类别","value":"饮料","displayValue":"饮料"}])进行编码,base64编码及encode

调整后url格式:http://10.10.202.17:18080/smartbi/vision/loginByToken?smartbiToken=267f8e7a69&targetPath=openresource.jsp?resid=Iff80818101845a315a31bfcd0184607630e60a22&paramsInfoBase64=W3sibmFtZSI6IuS6p+WTgeexu+WIqyIsInZhbHVlIjoi6aWu5paZIiwiZGlzcGxheVZhbHVlIjoi6aWu5paZIn1d

3、url存在特殊字符,对openresource.jsp?resid=Iff80818101845a315a31bfcd0184607630e60a22&paramsInfoBase64=W3sibmFtZSI6IuS6p+WTgeexu+WIqyIsInZhbHVlIjoi6aWu5paZIiwiZGlzcGxheVZhbHVlIjoi6aWu5paZIn1d进行整体encode,base64编码及encode

调整后url格式:http://10.10.202.17:18080/smartbi/vision/loginByToken?smartbiToken=267f8e7a69&targetPath=openresource.jsp%3Fresid%3DIff80818101845a315a31bfcd0184607630e60a22%26paramsInfoBase64%3DW3sibmFtZSI6IuS6p%2BWTgeexu%2BWIqyIsInZhbHVlIjoi6aWu5paZIiwiZGlzcGxheVZhbHVlIjoi6aWu5paZIn1d

特殊情况

若操作后仍未解决,需检查第三步 encode前的url,openresource.jsp?resid=报表id 之间的的?和=号是否已经encode了,需还原后再把targetPath=后的整体值进行encode


  • 无标签