Javascript 使用JS/AJAX下载IText.pdf

Javascript 使用JS/AJAX下载IText.pdf,javascript,ajax,download,itext,Javascript,Ajax,Download,Itext,我有一个页面,创建一个Itext pdf文档,然后下载该文档。下面的代码就可以做到这一点。但是页面会刷新。我希望页面不必刷新。我认为这将提供更好的用户体验,这样页面表单输入就不会在页面刷新时消失 是否有更好的方法来处理此任务,从而不必刷新页面?是否可以对现有代码进行一些修改以避免页面刷新 labelReprint.js: $.ajax({ url: "labelReprint.aspx/DoLabelPrint", data: "{'type':'" +

我有一个页面,创建一个Itext pdf文档,然后下载该文档。下面的代码就可以做到这一点。但是页面会刷新。我希望页面不必刷新。我认为这将提供更好的用户体验,这样页面表单输入就不会在页面刷新时消失

是否有更好的方法来处理此任务,从而不必刷新页面?是否可以对现有代码进行一些修改以避免页面刷新

labelReprint.js:

    $.ajax({
        url: "labelReprint.aspx/DoLabelPrint",
        data: "{'type':'" + lblType + "','scan':'" + scan + "','qty':'" + qty + "','split':'" + split + "'}",
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            console.log('Downloading .pdf');

            //pdf
            var downloadpdf = $('<a id="downloadpdf" download="' + fileName + '.pdf" href="data:application/pdf;base64,' + result.d + '" >');
            $('#download').append(downloadpdf);
            document.getElementById("downloadpdf").click();
            $("#downloadpdf").remove();

        },
        error: function (result) {
            console.log(result.responseJSON.Message + "\n\r\n\r" + result.responseJSON.StackTrace);
        }
    });

任何想法或见解都将不胜感激

在Ajax的“完成”部分,输入以下代码:

var binaryString = window.atob(result);
var binaryLen = binaryString.length;
var bytes = new Uint8Array(binaryLen);
for (var idx = 0; idx < binaryLen; idx++) {
            var ascii = binaryString.charCodeAt(idx);
            bytes[idx] = ascii;
}
var blob = new Blob([bytes]);
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
var fileName = "filename.pdf";
link.download = fileName;
link.click();
var binaryString=window.atob(结果);
var binaryLen=binaryString.length;
var bytes=新的Uint8Array(二进制数);
对于(var idx=0;idx
var binaryString = window.atob(result);
var binaryLen = binaryString.length;
var bytes = new Uint8Array(binaryLen);
for (var idx = 0; idx < binaryLen; idx++) {
            var ascii = binaryString.charCodeAt(idx);
            bytes[idx] = ascii;
}
var blob = new Blob([bytes]);
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
var fileName = "filename.pdf";
link.download = fileName;
link.click();