【问题标题】:return PDF in ajax request and open in new window在 ajax 请求中返回 PDF 并在新窗口中打开
【发布时间】:2016-01-11 16:57:27
【问题描述】:

我有一个对 apiurl 的 ajax 请求,我在其中获取 PDF 文件。现在我想在新窗口中显示这个文件

$("#pdfurl").click(function (e) {
    var Pdfurl = $(this).attr('data-href');
    $.ajax({
        url: "../RequestPages/PreviewPdf",
        type: "GET",
        data: { "pdfUrl": Pdfurl },
        success: function (data) { 
        },
        error: function (jqXHR, textStatus, errorThrown) {
        }
    });
})



 public ActionResult PreviewPdf(string pdfUrl)
{
    var web = new WebClient();
    byte[] bytes = web.DownloadData(pdfUrl);
    string mimeType = "application/pdf";
    Response.AppendHeader("Content-Disposition", "inline; filename=" + "a.pdf");
    return File(bytes, mimeType);
}`

【问题讨论】:

  • <a href="../RequestPages/PreviewPdf?pdfUrl=bla/pdf" target="_blank">PDF</a>
  • 如果您在此处查看答案stackoverflow.com/questions/133925/…,它将向您展示如何模仿表单提交,该表单提交将通过保存对话框返回您想要的文件结果,或者只是打开文件。
  • @mplungjan 谢谢它对我有用

标签: jquery ajax asp.net-mvc pdf


【解决方案1】:

AJAX 请求的目的是将响应作为 Javascript 数据提供给您。

如果您希望浏览器导航到响应,则不能使用 AJAX。

相反,只需使用open() 直接打开网址。

【讨论】:

    【解决方案2】:

    我的务实建议

    <a href="../RequestPages/PreviewPdf?pdfUrl=bla.pdf" target="_blank">PDF</a>
    

    如果没有必要,不要使用脚本

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 2012-04-11
      • 2014-07-01
      • 2019-01-25
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      相关资源
      最近更新 更多