Ionic应用嵌入Power BI经Azure认证后提示Content not available问题咨询
Power BI嵌入报表提示"content not available"修复指南

前置校验项
- 检查accessToken请求scope:至少包含
Report.Read.All或Report.ReadWrite.All,组织嵌入场景需额外添加Workspace.Read.All - 检查embedUrl有效性:不要手动拼接,直接使用Power BI REST API获取报表详情接口返回的embedUrl字段,标准格式为
https://app.powerbi.com/reportEmbed?reportId=【报表ID】&groupId=【工作区ID】 - 检查工作区类型:禁止使用个人工作区做组织嵌入,必须使用标准新建工作区
逐步骤权限映射配置
步骤1:AAD应用权限配置
- 进入Azure Portal的AAD应用注册页面,打开你创建的应用详情
- 进入「API权限」页面,添加Power BI Service权限,根据嵌入场景选择权限类型:
- 用户拥有数据嵌入场景(登录用户自行访问有权限的报表):选择委托权限,勾选
Report.Read.All、Workspace.Read.All - 服务主体嵌入场景(应用代替用户访问报表):选择应用程序权限,勾选
Report.Read.All、Workspace.Read.All
- 用户拥有数据嵌入场景(登录用户自行访问有权限的报表):选择委托权限,勾选
- 权限添加完成后点击「授予管理员同意」,该步骤为必填项,未操作权限不生效
步骤2:Power BI工作区权限配置
- 进入Power BI服务,打开存放目标报表的工作区
- 点击右上角「访问」按钮,打开权限配置面板
- 添加对应访问主体:
- 用户拥有数据场景:搜索添加需要访问报表的AAD用户,角色至少设置为「查看者」
- 服务主体嵌入场景:搜索你创建的AAD应用名称,添加后角色至少设置为「成员」
- 保存配置后等待5分钟,Power BI权限同步存在延迟
步骤3:嵌入代码校验
现有代码结构无问题,建议添加错误监听定位具体报错原因:
const config = { type: 'report', accessToken, embedUrl, id: embedReportId, settings: { filterPaneEnabled: true, navContentPaneEnabled: true } }; var report = powerbi.embed(reportContainer, config); // 新增错误监听,可在控制台查看具体报错信息 report.on('error', event => { console.log('嵌入错误详情:', event.detail) })
错误码参考:401为token无效/过期,403为无报表访问权限,404为报表ID/embedUrl填写错误。
内容的提问来源于stack exchange,提问作者Vishal
相关产品推荐
相关产品推荐

