Salesforce Experience Cloud中Amazon Lex聊天机器人加载超时求助
问题描述
- 部署场景:在公司官网及Salesforce Experience Cloud中部署Amazon Lex聊天机器人,官网运行正常,但Salesforce社区云报错
- 错误信息:
Error: chatbot loading time out
at e.onConfigEventTimeout (iframe-component-loader.js:524:23)
(anonymous) @ (index):23
- 嵌入脚本(添加路径:Salesforce → Setup → builder → settings → Edit markup):
<script> var loaderOpts = { baseUrl: 'https://dxyz13123.cloudfront.net/', shouldIgnoreConfigWhenEmbedded: false, shouldLoadMinDeps: true, configUrl: './lex-web-ui-loader-config-en-custom.json', }; var loader = new ChatBotUiLoader.IframeLoader(loaderOpts); var chatbotUiConfig = { /* Example of setting session attributes on parent page lex: { sessionAttributes: { userAgent: navigator.userAgent, QNAClientFilter: '' } } */ }; loader.load(chatbotUiConfig) .catch(function (error) { console.error(error); }); </script> <style> .lex-web-ui-iframe iframe { border-radius: 0; margin: 1px;} </style>
- 已完成配置:Salesforce设置中安全级别设为"Relaxed CSP: Permit Access to Inline Scripts and Allowed Hosts",并添加了可信站点
排查与解决方案
1. 修正configUrl路径
Salesforce社区云的页面上下文与官网不同,相对路径可能无法正确加载配置文件:
- 将
./lex-web-ui-loader-config-en-custom.json替换为绝对URL,例如https://dxyz13123.cloudfront.net/lex-web-ui-loader-config-en-custom.json - 直接在浏览器访问该绝对URL,确认能正常返回JSON配置内容
2. 调整嵌入模式参数
将shouldIgnoreConfigWhenEmbedded设为true,避免嵌入场景下的配置逻辑冲突:
shouldIgnoreConfigWhenEmbedded: true,
3. 补全CSP可信站点配置
- 除CloudFront域名
https://dxyz13123.cloudfront.net/,添加Amazon Lex对应区域的域名(例如https://runtime.lex.<你的区域>.amazonaws.com/) - 确认CSP规则中,
frame-src、script-src、connect-src均包含这些域名,无遗漏
4. 增加超时阈值(可选)
若因网络延迟导致超时,可在加载器配置中延长超时时间:
var loaderOpts = { // 现有配置项... timeout: 15000, // 设为15秒,根据实际情况调整 };
5. 检查资源加载状态
打开浏览器开发者工具(F12),查看Network标签:
- 确认配置文件、Lex相关资源是否能正常加载,是否存在403/404等错误
- 排查Salesforce社区云是否有额外的iframe加载限制
内容的提问来源于stack exchange,提问作者GVMK
相关产品推荐
相关产品推荐

