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

使用Soulmachines Widget代码片段点击数字分身时遇CORS及403错误求助

Soulmachines Widget代码片段点击数字分身时遇CORS及403错误求助

我太懂你这种闹心的情况了——用Soulmachines的Widget代码能正常显示数字分身,但一点击就弹出CORS和403错误,反而用scene.connect()调用同一个API Key却能正常工作,确实让人摸不着头脑。结合我接触Soulmachines的实操经验,给你几个针对性的排查方向:

  • 先确认API Key的权限范围:Soulmachines的API Key往往是分场景权限和Widget权限的,你可以去项目控制台里检查一下,当前的API Key是否开启了「Widget嵌入」相关的授权。毕竟scene.connect()和Widget的请求链路用的是不同的校验规则,可能你的Key只授权了场景连接,没开Widget权限。

  • 修复代码里的参数格式问题:看你贴的代码,data-sm-profile-picture这个参数被拆成了两行,中间还有多余空格:

    data-sm-profile- 
      picture="https://assets.cdn.soulmachines.cloud/AvatarCoverImages/image-sam-l.jpg"
    

    这种断行会导致参数名被解析成不完整的data-sm-profile-,直接触发后端参数校验失败返回403。把这行合并成完整的一行试试:

    data-sm-profile-picture="https://assets.cdn.soulmachines.cloud/AvatarCoverImages/image-sam-l.jpg"
    
  • 检查项目的CORS配置:虽然scene.connect()能正常工作,但Widget的请求指向了不同的端点(比如你看到的https://dh.soulmachines.cloud/api/jwt)。去Soulmachines的项目设置里,查看「允许的CORS源」列表,确认是否添加了你当前页面的域名。如果是本地用file://直接打开HTML文件,Origin会显示null,这肯定会被拦截,建议用本地服务器(比如http-server)启动页面,用http://localhost:xxxx访问,再把这个本地域名加到CORS允许列表里。

  • 排查Widget版本兼容性:你用的是1.11.0版本的Widget snippet,去官方文档看看有没有更新的稳定版本,或者这个版本是否和你的项目版本匹配。有些旧版本的Widget可能存在授权逻辑的bug,导致自动生成JWT的请求失败。

  • 验证请求的API Key正确性:在浏览器控制台里查看失败请求的详细信息,确认发送的API Key是否完整、格式是否正确——有时候代码里的注释或多余字符会导致Key被截断,进而触发403错误。

备注:内容来源于stack exchange,提问作者Code The World

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 16:59:29