JSON中位于位置0

时间:2018-10-15 11:48:34

标签: javascript json fetch

我正在尝试使用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文件制成的,用于录音。

1 个答案:

答案 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/