JsReport клиент отображает отчет с базовой аутентификацией
У меня проблема с использованием JsReport www.jsreport.net.
На сервере я включил обычную аутентификацию для защиты редактора отчетов, но теперь шаблоны доступны только при аутентификации.
На веб-странице я использую ember.js и передаю параметры в jsreport.render, но получаю ошибку "Unauthorized".
Я передаю 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;
}};
Кто-то может мне помочь?
Tks.
1 ответ
Решение
К сожалению, не поддерживается передача заголовков браузеру. jsreport.render
звонки в этот момент. Есть две причины:
- Это не будет безопасно, потому что таким образом вы будете открывать учетные данные в браузере, и каждый может легко это выяснить
jsreport.render
использует в основном синхронные http-посты (отправка формы), которым не разрешено переносить пользовательские заголовки
Я бы рекомендовал направлять все запросы через ваш сервер и надежно скрывать jsreport за ним.
В качестве альтернативы, если вас интересует только блокировка редактирования шаблонов в редакторе, вы можете взглянуть на расширение замораживания jsreport