2016-05-21 15 views
0

JsReport www.jsreport.netを使用している問題があります。JsReportクライアントレンダリングレポート(基本認証あり)

サーバーでは、レポートエディタを保護するための基本認証が有効になっていましたが、テンプレートは認証によってのみアクセスされます。

Webページでは、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。

+0

で見てみることができますか?その特定のコードを共有できますか? –

+0

はい。これはクライアント側です。 –

答えて

1

現時点では、ブラウザのjsreport.renderコールにヘッダーを渡すことはできません。 2つの理由があります。

  1. この方法は、あなたがブラウザで資格情報を明らかにすることになるのでそれは安全ではないだろうと誰もが簡単に(フォーム送信)
  2. jsreport.renderはほとんど同期のHTTPポストを使用して、それを見つけることができました

サーバーからすべての要求をルーティングし、jsreportをしっかりと隠すことをお勧めします。エディタで、テンプレートの編集を遮断するのにのみ関心がある場合

代わりに、これは、クライアント/ブラウザ側であるjsreport freeze extension

+0

Tks。この回答は私をとても助けました。 –