2016-01-11 2 views
0

У меня есть запрос ajax для apiurl, где я получаю PDF-файл. Теперь я хочу, чтобы отобразить этот файл в новом окнеreturn PDF in ajax request и открыть в новом окне

$("#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); 
}` 
+1

'' PDF mplungjan

+0

, если вы посмотрите на ответ здесь http://stackoverflow.com/questions/133925/ javascript-post-request-like-a-form-submit это покажет вам, как имитировать отправку формы, которая вернет результат файла, как вы хотите, с помощью диалогового окна сохранения или просто откройте файл. – JamieD77

+0

@mplungjan спасибо, что это сработало для меня – user202

ответ

1

Прагматический во мне говорит

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

Никогда не используйте сценарий, если он не нужен

5

Точка-запроса AJAX, чтобы дать вам ответ, как данные JavaScript.

Если вы хотите, чтобы браузер перешел к ответу, вы не можете использовать AJAX.

Вместо этого просто используйте open(), чтобы открыть URL-адрес напрямую.

Смежные вопросы