0

それ自体で正常に動作するページを正常に呼び出す ajax 呼び出しがあります。ボタンをクリックすると、PDF がダウンロードされます。ただし、同じリクエスト タイプと URL を使用して AJAX 呼び出しを行うと、dataが返されますが、ダウンロードは求められません。

私の電話:

    $("#download-pdf").live('click', function(){
      $.ajax({
        url: $(this).parents('form').attr('action'),
        type: 'POST',
        success: function(data){
          console.log(data);
        }
      });
      return false;
    });

データは、解析されていない PDF として返されます。だから、情報があることは知っています。ダウンロードが発生しないだけです。トリックはありますか?

4

2 に答える 2

4

ダウンロードを強制する唯一の方法は、「標準の」フォーム送信方法を使用してページを更新することです。Ajax を使用すると、生の出力データ (PDF) を受け取り、保存ダイアログがポップアップすることはありません

于 2012-04-17T12:56:21.423 に答える
3

AJAX を使用している場合、ダウンロードを強制することはできません。

これをお読みください: javascript/ajax/jquery を使用して PDF リンクを強制的にダウンロードする

フォームを送信するだけの場合は、適切なヘッダーを送信して、ブラウザーにファイルをダウンロードするように指示できます。

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=file.pdf");

Response.ContentType = "application/pdf";
Response.WriteFile(Server.MapPath(@"~/file.pdf"));

Response.End();
于 2012-04-17T12:57:02.920 に答える