JsReport客户端使用Basic身份验证呈现报告

时间:2016-05-21 01:31:08

标签: jsreport

我在使用JsReport www.jsreport.net时遇到了问题。

在服务器中,我启用了基本身份验证以保护报告编辑器,但现在只能通过身份验证访问模板。

在网页中,我使用ember.js并将选项传递给jsreport.render,但我收到错误“未经授权”。

我在标题中传递btoa但不起作用。

查看示例:

jsreportInit = function(){
jsreport.render($("#contentReport"), renderPage("html"));

$("#generateExcel").on("click", function(){
    jsreport.render(renderPage("html-to-xlsx"));
});

function renderPage(type){
    var data = {
            headers: {
                "Authorization" : "Basic xpto" 
            },
            shortid : "${shortId}",
            recipe: type, 
            engine: "jsrender",
            options: {
                id : "${id}",
                questions : "${questions}",
                skipQuestions : "${skipQuestions}",
                eventPersons : "${eventPersons}",
                subscribers : "${subscribers}",
                urlApi: "http://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}",
                urlReport: "${urlReport}"
            }
    }
    return data;
}};

有人可以帮助我吗?

韩国社交协会

1 个答案:

答案 0 :(得分:1)

不幸的是,目前不支持将标头传递给浏览器的jsreport.render电话。有两个原因:

  1. 这样做不安全,因为这样你就可以在浏览器中显示凭据,而且每个人都可以轻松找到它
  2. jsreport.render主要使用不允许携带自定义标题的同步http帖子(表单提交)
  3. 我建议您通过服务器路由所有请求,并在其后面安全地隐藏jsreport。

    或者,如果您只对编辑器中的模板编辑感兴趣,可以查看jsreport freeze extension