反馈已提交

网络繁忙

Web传递中文参数

  • 文档创建者:文档助手1
  • 历史版本:21
  • 最近更新:Wendy123456 于 2021-10-27
  • 1. 概述

    1.1 问题描述

    给 iframe 设置 src 嵌入某个报表时,往往会给报表传递初始的参数值,例如:

    <iframe id="reportFrame" width="900" height="400" src="/webroot/decision/view/report?viewlet=/report.cpt&参数1=参数值
    &参数2=参数值..."></iframe>

    若参数名称、参数值甚至报表名称中包含中文或者特殊字符时,如果不进行编码转换,可能会出现一系列问题,如找不到模板文件等,如下。
    222

    那么如何实现带中文的报表正确传参呢?

    1.2 实现思路

    在给报表服务器发送请求之前,使用 JavaScript 先对 URL 编码,然后再向服务器提交。避免了不同的操作系统、不同的浏览器、不同的网页字符集,导致完全不同的编码结果。因为JavaScript 的输出总是一致的,所以就保证了服务器得到的数据是格式统一的。

    因此需要对 URL 中的中文,包含模板名、参数名字和参数值,进行 encodeURIComponent 或者 encodeURI 编码。详细点击 编码转换

    2. 示例

    2.1 新增parameter_ch.html文件

    image.png

    完整代码如下:

    <html>  
      <head>  
      <title>FineReport Demo</title>  
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
      <script language="javascript">
        function autoLoad(){
          var addr = "/webroot/decision/view/report?viewlet=GettingStarted.cpt&"+encodeURIComponent("地区")+"="+encodeURIComponent("华东");
          document.getElementById("reportFrame").src = addr;
        }
        window.onload = autoLoad; 
      </script>
      </head>  
      <body>  
        <iframe id="reportFrame" width="900" height="400" ></iframe>  
      </body>
    </html>

    2.2 存放parameter_ch.html文件

    将新增的parameter_ch.html文件放入路径:%FR_HOME%\webapps\webroot\help\page_demo

    2.3 预览效果

    已完成示例请参照%FR_HOME%/webapps/webroot/help/page_demo/parameter_ch.html

    启动设计器,输入http://localhost:8075/webroot/help/page_demo/parameter_ch.html,效果如下图:

    222

    注:不支持【UTF-8 无 BOM】的编码格式。

    附件列表


    主题: 部署集成
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持