На мой взгляд, эти два бита кода должны работать одинаково:
window.location = "../PlanView/ExportAsPDF";
$.ajax({
url: '../PlanView/ExportAsPDF',
data: { },
success: function (stream) { window.location = stream; }
});
Прежний бит кода запускает загрузку файла .PDF для пользователя. Второй - нет - у меня есть странный запрос в сетевом трафике моего браузера.
Может ли кто-нибудь выделить ключевые различия, о которых мне следует знать?
Более подробное объяснение:
Мне нужно передать на сервер больше данных, чем разрешено в URL. Таким образом, мне нужно POST на сервер, а не GET. Я не могу использовать прежний код, потому что не могу вставить столько информации в URL - сервер ответит 414.
Я хотел бы повторить функциональность первого фрагмента кода с последним.
public ActionResult ExportAsPDF(string dataURL)
{
Document document = new Document(PageSize.A4.Rotate(), 15, 15, 30, 65);
byte[] buffer = new byte[0];
using (MemoryStream memoryStream = new MemoryStream())
{
PdfWriter.GetInstance(document, memoryStream);
document.Open();
document.Add(new Paragraph("First PDF file"));
document.Close();
buffer = memoryStream.ToArray();
}
return File(buffer, "application/pdf", "PlanView.pdf");
}