You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用YouTube视频聊天代码发起通话时遇JSON解析错误求助

问题分析与解决方案

错误Unexpected token 'o', "[object Blob]" is not valid JSON的核心原因是接收端尝试解析的内容是Blob对象的字符串表示,而非合法的JSON数据,问题大概率出在offer的发送或接收处理环节。

排查与修复步骤:

  1. 调整发送的数据结构
    RTCSessionDescription对象可能包含不可序列化的内部属性,直接传递整个对象易导致序列化异常,或被dataService误处理为Blob。修改发送逻辑,只传递可序列化的核心属性:
// 替换原发送代码
this.dataService.sendMessage({
  type: 'offer',
  data: {
    type: offer.type,
    sdp: offer.sdp
  }
});
  1. 验证dataService.sendMessage的实现
    确认该方法是否正确将传入对象序列化为JSON字符串发送。如果使用Fetch API,需确保请求体是JSON.stringify(payload),而非将对象包装为Blob:
// dataService内部正确实现示例
sendMessage(payload: any) {
  return fetch('/your-endpoint', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(payload)
  });
}
  1. 修正接收端的处理逻辑
    接收消息时,先解析JSON数据,再用它创建RTCSessionDescription:
// 接收端处理示例
async handleMessage(message: any) {
  if (message.type === 'offer') {
    const remoteOffer = new RTCSessionDescription(message.data);
    await this.peerConnection.setRemoteDescription(remoteOffer);
    // 后续通话逻辑...
  }
}

内容的提问来源于stack exchange,提问作者ghassen chaieb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:45:43