我正在通过jQuery AJAX 调用调用/download
端点。来自端点的响应是一个base64字符串。当我复制这个响应并将其粘贴到在线base64到PDF转换器中时,我得到了所需的PDF文件。然而,通过下面的代码访问它稍微调整了字符串,这使得PDF只是一个空白文档。
$.ajax({
type: "POST",
url: "/download",
data: JSON.stringify(postData),
contentType: "application/json",
encode: true,
})
.done(function (data) {
window.open("data:application/pdf;base64," + Base64.encode(data));
})
.fail(function (err) {
$('.toast-header strong').html('Download Error');
$('.toast-body').html('An error occured while downloading the file.');
let toast = new bootstrap.Toast($('#liveToast'));
toast.show();
});
我试过访问data
的不同方法,比如data.toString()
,或者只是使用data
变量,而不是将其传递给Base64.encode()
函数,但没有成功。如何简单地使用从API响应中获得的纯文本?
来自API的响应(复制此文本并将其粘贴到在线转换器上可获得正确的PDF)
console.log(data)
的输出。为什么我不认为它只是类似于API响应的纯文本?
1条答案
按热度按时间xj3cbfub1#
您应该使用JavaScript中内置的btoa()函数来编码base64字符串,而不是使用Base64.encode()函数。