我正在尝试使用BASE64编码的BLOB数据发送获取请求。
通过不同的服务验证JSON时,它被证明是有效的JSON。
export function sendRecording1(blob){
let base64data;
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
base64data = reader.result;
//base64data = base64data.substring(22);
base64data = base64data.toString();
let body = JSON.stringify({text: base64data, id: "blob"});
//console.log(body);
return fetch(url, {
method: "POST", // or 'PUT'
async: true,
//body: JSON.stringify({ text: base64data, id: "blob" }),
body: body,
headers: {
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json"
}
}).then(res => res.json())
但是fetch()似乎不喜欢Base 64 Body,并给我以下错误:错误:SyntaxError:JSON中位置0处的令牌I意外
当主体达到100.000bytes以上时,这似乎也会发生。 当我有其他大文件时,这很奇怪。
Base64数据是由.WAV文件制成的,用于录音。
答案 0 :(得分:0)
几周前我已经遇到了这个问题,不确定我到底做了什么。试试这个并调试它会有所帮助。
(s/def ::ints
(s/with-gen
(s/+ int?)
#(gen/vector gen/int 1 10)))
(gen/sample (s/gen ::ints) 200)
https://daveceddia.com/unexpected-token-in-json-at-position-0/