如何解决 "This content cannot be displayed in a frame" 错误 - CRM 2013 + Sharepoint 2013?

How to resolve "This content cannot be displayed in a frame" error - CRM 2013 + Sharepoint 2013?

我正在尝试 display/embed 来自 Sharepoint 2013 'document library' 的 Power View 报告到 CRM 2013 仪表板。

CRM 2013 - 内部部署,Sharepoint 2013 - 内部部署。

以下是我遵循的步骤:

  1. 在 Excel 2013 年使用 CRM OData Feed
  2. 开发了示例 Power View 报告
  3. 已将 Power View 报告 (.xlsx) 上传到 Sharepoint 2013 文档库
  4. 在 CRM 中,创建了一个系统仪表板并添加了一个 IFrame。
  5. 复制了 Power View 报告 URL 并将“&action=embedview”附加到查询字符串。
  6. 将上面的字符串更新到 CRM 仪表板 IFrame URL 属性中。取消勾选 'Restrict cross-frame scripting ' 复选框。保存并发布仪表板。

(如 - Embedding Power View reports in CRM 2013 , PowerView reports in CRM 中所建议)

在 CRM 中打开仪表板显示 'This content cannot be displayed in a frame' 错误。

到目前为止我已经尝试过: 根据 -- article

更改 IE 设置

我也看过这个 -- IFraming Sharepoint hosted apps 但不明白需要做什么。当我尝试使用 'Open in Explorer' 打开我的 'document library' 并更改 /Forms/AllItems.aspx 以包含下面的标签时,它破坏了文档库。

<WebPartPages:AllowFraming runat="server" />

请协助。

同事帮我解决了这个问题。

解决方法是安装 "PermissiveXFrameHeader" sharepoint 解决方案并为我的 sharepoint 网络应用程序启用该功能。请参考这篇文章Sharepoint:Rendering inside iframes

我必须在 IIS 中为保存文档的 SharePoint 应用程序创建出站规则。这些是我在创建出站规则时使用的字段:

  1. 姓名
    • 随便起什么名字,我用的是set x-frame-options
  2. 匹配
    • 匹配范围:服务器变量
    • 变量名:RESPONSE_X-FRAME-OPTIONS
    • 模式:.*
    • 动作类型:
      • 重写操作属性值:(留空)
      • (CHECK) 替换现有的服务器变量值

然后我就应用了规则。它目前对我有用。让我知道它是否适合你。