フロントエンドが完全にExtJS4で作成されているIE7で動作する必要があるWebアプリケーションがあり、ファイルのダウンロードに使用されるサーブレットがあります。ファイルをダウンロードするには、いくつかのパラメーターを送信するので、単に使用することはできませんlocation.href
。それは POST でなければなりません。
これまでのところ機能していますが、サーブレットで例外がスローされた場合、別のページにリダイレクトせずにアラートボックスまたはメッセージをユーザーに表示する方法がわかりません。
私のwebapp imでもDWRを使用しており、openInDownload()
機能を認識していますが、IEでセキュリティ警告がトリガーされます。
それで、(ついに!)質問は
このコードの使用:
post = function (url, params) {
var tempForm=document.createElement("form");
tempForm.action=url;
tempForm.method="POST";
tempForm.style.display="none";
for(var x in params) {
// ...snip boring stuff to add params
}
document.body.appendChild(tempForm);
tempForm.submit();
return tempForm;
}
送信後、同じページにとどまることは可能ですか?
またはこの他のもので:
Ext.Ajax.request({
url: './descargaArchivoNivs',
method: 'POST',
autoAbort: true,
params: {
nivs: jsonData
},
success: function(response){
// HERE!!
// i know this is wrong
document.write('data:text/plain,' + response.responseText );
/* this looked promising but a warning pops up
var newwindow = window.open();
newwindow.document.open();
newwindow.document.write('data:text/plain, ' + response.responseText );
newwindow.document.close();*/
},
failure: function(resp){
alert('There was an error');
}
});
// HERE!!
コンテンツを含むファイル ダウンロード ダイアログを開くことは可能ですresponse
か??
または、成功時にファイル ダウンロード ダイアログを開き、失敗時にユーザーの入力 (POST のパラメーター) を失わずにわかりやすいメッセージを表示する他の方法はありますか?
(この記事が長すぎたらごめんなさい)