AJAX POST Base64 字符串格式错误

问题描述 投票:0回答:1

我无法通过 AJAX POST 正确地将我的 Base64 字符串上传到 SQL 数据库或从 SQL 数据库返回该字符串。当我通过 AJAX 从数据库返回字符串时,我收到完全相同的 base64 字符串,但带有随机换行符。遗憾的是,这些换行符使字符串无法使用。

在控制台顶部,您可以看到格式不正确的base64,而底部则格式正确。

Photo Here

当我查看 SQL 数据库中的 base64 字符串时,它的格式不正确,这使我相信最初的 AJAX 上传是发生问题的地方。我将 SQL 数据类型设置为 MEDIUMTEXT,因此这可能是一个问题,但当我更改数据类型时,我没有看到任何差异。

//Getting the base64 string
let canvas = picCheckIn.getContext("2d")
let dataURL = canvas.canvas.img.src
//Hard-coding the base64 string to the image's source
imgPreviousIn.src="data:image/jpeg;base64,/9j/4A...<Rest of base64 string>"

//Assigning the AJAX base64 string to the image's source
let req = Ajax(<POST query here...>)
let results = JSON.parse(req.responseText)
imgPreviousIn.src=results[0][0]

我得到的错误代码:

获取数据:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1...net::ERR_INVALID_URL

javascript json ajax
1个回答
0
投票

罪魁祸首是SQL数据库。我的数据库正在将加号转换为空格,从而删除加号。

在通过 AJAX 调用发送字符串之前使用

string.replaceAll("+","%2B")
可以解决此问题。我还发现,如果您为所调用的每个字符串运行单独的 AJAX 调用,效果最好。

© www.soinside.com 2019 - 2024. All rights reserved.