0

C# と JavaScript を使用しています。私の目標は、CSV ファイルがダウンロードされる ajax リクエストを送信することです。CSV はサーバー側で ashx ページに生成されます。現在、アプリケーションは CSV をダウンロードできますが、AJAX 要求の代わりにフォームを使用しますが、バックエンド コードは同じです。

失敗した ajax リクエストは次のとおりです。

$.ajax({
    url: "myDir/x.ashx/exportAllData",
    type: 'POST',
    data: { 
        id:8
    },
    success: function(ajaxResult){
    console.log(ajaxResult);
    }
});

機能する Form メソッドは次のとおりです。

var $form = $(document.createElement('form'))
    .attr({
        action: 'myDir/x.ashx/exportAllData',
            method: 'POST'
        })
        .css('display', 'none')
        .appendTo('body');         
    $form.submit();
    $form.empty().remove();

ハンドラー (C#) のコードは次のとおりです。これは、上記の両方のケースで同じです。

else if(action == "exportalldata")
{
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("test1,test2,test3,test4,test5");
       context.Response.Clear();
       context.Response.ContentType = "application/csv";
       context.Response.AddHeader("Content-Disposition",       "attachment;filename=data.csv");                
     context.Response.Write(sb.ToString());
     context.Response.End();
}
4

3 に答える 3

0

自分で日付を入力する場合は、これを使用できます

Ajax のようなファイルのダウンロードを要求するための jQuery プラグイン

リンクからの例:

$.download('/export.php','filename=mySpreadsheet&format=xls&content=' + spreadsheetData );
于 2013-10-23T14:04:59.750 に答える
0

サーバー側のコードを変更して、webroot 内の静的ファイルに出力し、それを指す URL を返すことができます。window.location.hrefその後、URLに設定できます。

于 2013-10-23T14:02:17.883 に答える