Javascript 使用'时出错;atob&x27;命令-无法执行';atob&x27;在';窗口';:要解码的字符串编码不正确

Javascript 使用'时出错;atob&x27;命令-无法执行';atob&x27;在';窗口';:要解码的字符串编码不正确,javascript,aurelia,Javascript,Aurelia,我需要将base64字符串解码为PDF文件。我正在使用这个代码。但是window.atob命令总是报告错误:无法在“window”上执行“atob”:要解码的字符串编码不正确 我知道该文件是正确的,因为我已经使用一个将base64解码为pdf的网站对其进行了解码。 我不知道它是否有用,但我们正在使用Aurelia框架 转换函数 function converBase64toBlob(content, contentType) { contentType = contentType

我需要将base64字符串解码为PDF文件。我正在使用这个代码。但是window.atob命令总是报告错误:无法在“window”上执行“atob”:要解码的字符串编码不正确

我知道该文件是正确的,因为我已经使用一个将base64解码为pdf的网站对其进行了解码。 我不知道它是否有用,但我们正在使用Aurelia框架

转换函数

function converBase64toBlob(content, contentType) {
        contentType = contentType || '';
        var sliceSize = 512;
        var byteCharacters = window.atob(content); //method which converts base64 to binary
        var byteArrays = [
        ];
        for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
            var slice = byteCharacters.slice(offset, offset + sliceSize);
            var byteNumbers = new Array(slice.length);
            for (var i = 0; i < slice.length; i++) {
                byteNumbers[i] = slice.charCodeAt(i);
            }
            var byteArray = new Uint8Array(byteNumbers);
            byteArrays.push(byteArray);
        }
        var blob = new Blob(byteArrays, {
            type: contentType
        }); //statement which creates the blob
        return blob;
    }

我找到了解决办法。Api正在返回带有字符“\”的base64字符串。所以我把所有这些都去掉了,效果很好

注意:完全确定,但我看到有人在结尾添加了两次“=”,然后就成功了。我不认为你可以从base64中删除字符。
.replace(/^[^,]+,/,”)
而不破坏编码谢谢你的帮助,我已经尝试过不使用replace(),但没有成功。关于在末尾添加“=”也不起作用。
self.blob = self.converBase64toBlob(result.contents[0].pdf.replace(/^[^,]+,/, ''), 'application/pdf');
                self.blobURL = URL.createObjectURL(blob);
                window.open(this.blobURL);