私は同じような問題に直面しました。この質問に記載されているように、href属性を使用してGETリクエストを使用してファイルをダウンロードすることはできません。 代わりに、hereのようにiframeに埋め込まれたフォームを送信して、ファイルIDを含むフォームを非表示の要素として送信し、ダウンロードを開始する必要があります。だからあなたのアンカータグをしなければならない:
<a href="javascript:void(0)" onclick="downloadFile('+fileId+')">download</a>
今onclickのJS関数にパラメータとしてごFILEIDを渡すと、このようにそれを定義します。
function downloadFile(fileId) {
let $iframe, iframeDoc, iframeHtml;
if(($iframe = $('#download_frame')).length === 0) {
$iframe = $('<iframe id="download_frame" +
' style="display: none;" src="about:blank"></iframe>'
).appendTo('body');
}
iframeDoc= $iframe[0].contentWindow;
if (iframeDoc.document) {
iframeDoc= iframeDoc.document;
}
iframeHtml= '<html><head></head><body><form method="POST" action="http:localhost:8080/MyProject/downloadAction.action"><input type="hidden" name="fileId" value="'+fileId+'"></form></body></html>';
iframeDoc.open();
iframeDoc.write(iframeHtml);
$(iframeDoc).find('form').submit();
}
あなたは、単一または複数のファイルのための同様のアプローチに従うことができます。お返事のための
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,X-Test-Header,Cache-Control
</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials
</param-value>
</init-param>
感謝を:また、あなたは、フィルタ構成でウルweb.xmlにこれを含めることができる追加する 。私はそれがうまくいくならあなたの答えを試して受け入れます。 –
これは機能しました。驚くばかり! –