在ajax请求中返回PDF并在新窗口中打开

时间:2016-01-11 16:57:27

标签: jquery ajax asp.net-mvc pdf

我有一个ajax请求apiurl我在哪里获得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);
}`

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:2)

我的务实建议

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

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