2016-04-08 21 views
0

いくつかのレポートのダウンロードに問題があります。ユーザーはマスターエンティティを持ち、詳細のリストから選択します。ユーザーがボタンをクリックすると、マスターによって詳細がグループ化され、各マスターのSSRSレポートが作成され、MS Word形式で返されるサーバーに要求が送信されます。リクエストは現在、これは、アイフレームユーザーがグリッド(長すぎるURL)からどこかの周りに50の詳細を選択したときに問題になるJS連続形式のダウンロード

function DownloadFile(url) { 
    var iframe = document.createElement("iframe"); 
    var id = 'iframe_' + Math.random() * 1000000000000000000; 
    iframe.id = id; 
    iframe.src = url; 
    iframe.style.display = "none"; 
    document.body.appendChild(iframe); 
    //removes window 
    window.setTimeout(function() { $('#' + id).remove(); }, 9000); 
} 

を介して行われている

http://url/to/action/?masterID=guid&detailIDs=guid1,guid2,guid3 

の形態です。私はDownloadFile関数を変更しようとしたので、urlとデータがサーバーにポストするようになりましたが、配列を反復して連続したフォームポストを実行すると最初は成功し、他は通過しません。

私もdocument.formsを繰り返して送信しましたが、失敗しました。

この機能を有効にする方法はありますか、またはブラウザのエンジンで禁止されていますか?

+0

なぜあなたは、複数のPOSTリクエストをしたいん

url = 'http://url/to/action/?masterID=' + masterID; detailIDs = [guid1,guid2,guid3];

? 1回のコールですべてのパラメータを取るようにアクションを変更できますか? –

+0

そうは思わない。彼がしたいことは、すべてのパラメータのリストを取得して1つのレスポンスを作成できることですが、URLには長さ制限があります。右? –

+0

問題は基本的にユーザーにあります。オプションの1つは、すべてのファイルを1つのzipファイルにダウンロードすることでしたが、それはできません。なぜなら、zipファイルの使用方法が分からないからです。 – Hugibeer

答えて

0

結果を生成しているサーバーにデータを送信するには、HTTP POSTメソッドを使用する必要があります。

function DownloadFile(url, detailIDs) { 
    var iframe = document.createElement("iframe"); 
    var id = 'iframe_' + Math.random() * 1000000000000000000; 
    iframe.id = id; 
    iframe.style.display = "none"; 
    document.body.appendChild(iframe); 
    //pseudo code, intention is to create a form and submit it from within the iframe. 
    iframe.submitForm(url, detailIDs);   

    //removes window 
    window.setTimeout(function() { $('#' + id).remove(); }, 9000); 
} 

See: how to create a form using js.

関連する問題