JsReport 客户端呈现具有基本身份验证的报告

JsReport client render report with Basic auth

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

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

在网页中,我使用 ember.js 并将选项传递给 jsreport.render,但出现错误 "Unauthorized"。

我在 header 中通过了 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;
}};

有人可以帮助我吗?

感谢。

很遗憾,目前不支持将 headers 传递给浏览器的 jsreport.render 调用。有两个原因:

  1. 这不安全,因为这样您会在浏览器中泄露凭据,而且每个人都可以轻松找到它
  2. jsreport.render 主要使用不允许携带自定义的同步 http 帖子(表单提交)headers

我建议通过您的服务器路由所有请求,并将 jsreport 安全地隐藏在它后面。

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