目的:以下のURLを生成することにより、サーバからPDFファイルをダウンロードしたい: http://localhost:4200/bookStore/secured/rest/books/14119ペイロード(空のコンテンツタイプ)禁止されたエラー|残り火で、サーバーからPDFファイルをダウンロード中に
以下の行がbook.jsで実行されます際にURLが生成されますルートで。
return this.store.findRecord('book', bookId);
しかし、403の禁止されたエラーが発生します。詳細のエラー:
Error: Ember Data Request GET /bookStore/secured/rest/books/14119 returned a 403
Payload (Empty Content-Type)
Forbidden
at new AdapterError (-private.js:3170)
at Class.handleResponse (rest.js:594)
at ajaxError (rest.js:956)
at Class.hash.error (rest.js:623)
at fire (jquery.js:3317)
at Object.fireWith [as rejectWith] (jquery.js:3447)
at done (jquery.js:9274)
at XMLHttpRequest.<anonymous> (jquery.js:9514)
が、私は「アプリケーション/ PDF」などのコンテンツ・タイプを設定する必要がありますか?はいの場合は、設定方法をご提案ください。
ルート\ book.js
actions: {
pdfClick(bookId) {
return this.store.findRecord('book', bookId);
}
}
テンプレートの\ book.hbsサーバ側の
<button {{action "pdfClick" book.bookId}}>PDF</button>
、受信及び応答コード:以下
はJSコードであります要求は次のとおりです。
@GET
@Path("/{bookId}")
@Produces("application/pdf")
public Response bookExport(@PathParam("bookId") long bookId) {
//Code
}
サーバーサイドコードによると、サーバーからPDFファイルを取得しています。これはPostManを使用して正常にテストされます。
@TBieniekにお返事ありがとうございます。 これは の 'let url = this.store.adapterFor( 'book')。urlForFindRecord(bookId、 'book');' 私は希望のURLを取得しました。しかし、hbsファイルからURLをトリガーする方法。 注: '' これはpdfClick関数が呼び出され、URLが生成される場所です。 hbs内のURLをトリガに使用する方法。 私が試した: '<ボタン{{アクション "pdfClick" book.bookId}}のonclick = {{URL}}> PDF'& '' PDF それが機能へと進むが、後にURLをトリガしません。 –
計算されたプロパティに 'url'を生成し、ifを' ''として使うか、 'pdfClick'アクションの直後に' document.location.assign(url); 'あなたはURLを生成しました – TBieniek