0

私はプロジェクトのクライアント側の部分に取り組んでおり、現在サーバーから XML データのブロックを受信して​​いる状況にあり、その情報を取得してユーザーにダウンロードを促すようにしています。これは可能ですか?

これが私のコードです:

 var holder =
    jQuery.ajax({
                type: "POST",
                url: "xml_comes_back.json",
                data: {param : info,
                        param2 : info2
                },
                dataType: ($.browser.msie) ? "text" : "xml",
                success: function(data) { 
                    $('#selector').prev().empty().html('<a href="' + data + '" id="download">Ready for Download</a>');

                    $('#download').click(function() {
                       //Prompt download for xml stored in 'data' here
                    });


                },
                error:function (xhr, ajaxOptions, thrownError) {
                   alert('error')

                }
            });
}

私はこれを達成しようとして大きな問題を抱えています。このファイルをサーバーで作成せずにダウンロードして、URL で保存することはできますか? 適切なヘッダーを使用してデータを動的に受信し、ダウンロードリンクを機能させたいだけです。

ajax 呼び出しの成功から返される応答ヘッダーは次のとおりです。

Content-Disposition:attachment; filename=theFile.xml
Content-Type:application/force-download;charset=UTF-8
4

2 に答える 2

0

ajaxから取得する情報がURLの場合は、「window.location = data」を使用してユーザーを、ユーザーにダウンロードを強制する適切なコンテンツタイプとコンテンツ配置を持つページにリダイレクトするだけではありません。新しいタブ/ウィンドウは開かないと思います。

于 2013-01-31T19:45:33.653 に答える
0

content-type ヘッダーを含むファイルを生成するページにリンクして、ダウンロードを強制する (または JavaScript でリダイレクトする) ようにします。最新のブラウザーは、実際に新しいウィンドウを開かずにダウンロードするだけだと思います。

于 2013-01-31T18:21:50.080 に答える