【问题标题】:LTI Advantage Resource Link not opening in IframeLTI Advantage 资源链接未在 Iframe 中打开
【发布时间】:2020-09-09 07:14:02
【问题描述】:

我已经为这个问题苦苦挣扎了几天,但找不到任何解决方案。

我已经实现了 LTI Advantage (LTI 1.3),它的工作原理就像魅力一样。但是,有一个问题我无法摆脱。 在 LTI 1.3 中,我们可以选择在 iframe 中显示工具的内容(也可以选择在窗口中显示,但我只想坚持使用 IFrame)

当我尝试创建深层链接时,它会按预期在 iframe 中打开。但是,当我尝试打开资源链接时,应用程序会在新窗口而不是 iframe 中打开。

我搜索了一个可能的解决方案: 我认为这一定是因为响应头中附加了 X-Frame-Options,我尝试通过在 Global.aspx.cs 中添加代码来手动删除它 我已经编写了代码来从网络配置设置中删除此标头,但没有任何效果。

现在我想知道我启动应用程序的代码可能是罪魁祸首。我正在使用以下代码使用表单发布启动应用程序:

string content = string.Empty;

content += "<html><head></head>";
content += string.Format("<body onload=\"document.{0}.submit();\">", "newForm");
content += "<form name=\"newForm\" target='_parent' method=\"POST\" action=\"" + fadavisLtiUrl + "\">";
foreach (var item in ltiRequestData)
{
content += string.Format("<input type=hidden name=\"{0}\"value=\"{1}\">", item.Key, item.Value);
}
content += "</form>";
content += "</body></html>";
return Content(content);

这段代码是否负责在窗口而不是 iframe 中启动应用程序?

相同的 LMS 设置适用于我的其他 POC 应用程序,没有任何问题。然而,唯一的区别是我的可启动应用程序只是同一个 POC 应用程序中同一个域中的一个测试页面。而在实时场景中,它是不同的应用程序,URL 略有不同。

这是我正在使用的一些示例 URL。

OIDC 登录验证 URL:https://mysiteltiadvantage.mysite.com/ LTI 应用启动 URL:https://devtesting.mysite.com/LTI/home/LTIAdvantageApp?productid=13902 申请网址:http://apptest.mysite.com/product?applicationid=13&accountid=1076615

任何人都可以建议任何解决方法来使用 LMS 在 IFrame 中打开应用程序或指出我在这里犯的错误吗?

拉克斯曼曼卡拉。

提前致谢。

【问题讨论】:

    标签: canvas iframe moodle lti blackboard


    【解决方案1】:

    根据您提供的信息,我猜测浏览器会拒绝您在安全 (https) 平台的 iframe 中嵌入不安全域 (http) 工具这一事实。

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 2022-09-23
      • 2010-12-14
      • 2018-01-30
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多