1

フロントエンドが完全に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 のパラメーター) を失わずにわかりやすいメッセージを表示する他の方法はありますか?

(この記事が長すぎたらごめんなさい)

4

0 に答える 0