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
调用。有两个原因:
- 这不安全,因为这样您会在浏览器中泄露凭据,而且每个人都可以轻松找到它
jsreport.render
主要使用不允许携带自定义的同步 http 帖子(表单提交)headers
我建议通过您的服务器路由所有请求,并将 jsreport 安全地隐藏在它后面。
或者,如果您只对在编辑器中阻止模板编辑感兴趣,您可以查看 jsreport freeze extension
我在使用 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
调用。有两个原因:
- 这不安全,因为这样您会在浏览器中泄露凭据,而且每个人都可以轻松找到它
jsreport.render
主要使用不允许携带自定义的同步 http 帖子(表单提交)headers
我建议通过您的服务器路由所有请求,并将 jsreport 安全地隐藏在它后面。
或者,如果您只对在编辑器中阻止模板编辑感兴趣,您可以查看 jsreport freeze extension