使用Power BI Angular库嵌入报表时遇tokenType未定义错误求助
你的配置无问题,错误源于Power BI Embedded的官方Bug
你的嵌入配置完全符合Power BI Angular库的规范:
- 正确设置了报表类型
type: 'report' - 提供了合法的报表ID、AAD访问令牌,且指定了
tokenType: models.TokenType.Aad - 配置了有效的
embedUrl和必要的界面设置
问题根源
你定位的结论准确:这是微软Power BI Embedded闭源JS文件中的Bug。负责判断的isSaaSEmbedWithAADToken函数要求传入config参数,但调用它的代码并未传入,导致读取config.tokenType时触发TypeError。
触发错误的调用代码:
if (isSaaSEmbedWithAADToken() && config.settings && config.settings.personalBookmarksEnabled) { url += "&defaultBookmarkEnabled=true"; }
函数本身的逻辑(依赖传入的config):
function isSaaSEmbedWithAADToken(config) { // Default token type is Aad (0) const tokenType = config.tokenType || 0; return (window.isSaasOrPaasEmbed === true) && (tokenType === 0); }
临时解决办法
因为JS文件无法自行修改,可尝试以下方案绕过:
- 若未显式设置
personalBookmarksEnabled,可以添加settings.personalBookmarksEnabled: false,直接跳过该条件分支 - 升级Power BI Angular库到最新版本,确认官方是否已修复该问题
- 通过Power BI官方支持渠道提交Bug反馈,推动官方修复
内容的提问来源于stack exchange,提问作者Stephan Bisschop
相关产品推荐
相关产品推荐

