JSON 使用 base64 编码图像解析失败 Javascript

JSON Parse Fails Javascript with base64 encoded Image

我正在尝试解析包含 base64 编码图像的 JSON 字符串。 我检查了 JSON 格式,它是正确的。为什么解析失败?跟base64的特殊字符有关系吗?

来自控制台的错误:"SyntaxError: JSON Parse error: Unexpected EOF"

我现在拥有的:

var pic = new XMLHttpRequest();
pic.open("GET",  api+"getimage?"+"userID="+myUserID, true);
pic.send();
var picArray= JSON.parse(pic.response);

JSON 响应是: {"Image":"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][IGF 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", "userID":"2kdv1goo9d3nb29evcova6oi4p"}

您正在尝试在发送请求后立即读取响应。在尝试阅读之前,您必须等待响应到达。

var pic = new XMLHttpRequest();
pic.open("GET",  api+"getimage?"+"userID="+myUserID, true);
pic.send();
pic.addEventListener("load", imageHandler);

function imageHandler(event) {
    var picObject = JSON.parse(this.responseText);
    console.log(picObject);
}

你必须在 base64 字符串前加上 "data:image/png;base64,"