Dynamics crm 如何在Dynamics CRM中向外部网站打开模式对话框?

Dynamics crm 如何在Dynamics CRM中向外部网站打开模式对话框?,dynamics-crm,xss,dynamics-crm-online,Dynamics Crm,Xss,Dynamics Crm Online,我有一个用于支付处理的外部网站。我想在Lead表单上创建一个模式对话框,允许用户处理付款。我当前正在使用创建模式,但加载失败,出现跨站点脚本错误: DomeException:未能从中读取“contentDocument”属性 “HTMLIFrameElement”:阻止具有原点的帧 “”从访问 交叉原点框架 有趣的是,我实际上可以在外部页面上调试javascript(它通过F12开发工具下载并执行),但在我得到错误后,“加载”Gif永远不会消失 只要我取消选中“限制跨帧脚本,在支持的地方”复选

我有一个用于支付处理的外部网站。我想在Lead表单上创建一个模式对话框,允许用户处理付款。我当前正在使用创建模式,但加载失败,出现跨站点脚本错误:

DomeException:未能从中读取“contentDocument”属性 “HTMLIFrameElement”:阻止具有原点的帧 “”从访问 交叉原点框架

有趣的是,我实际上可以在外部页面上调试javascript(它通过F12开发工具下载并执行),但在我得到错误后,“加载”Gif永远不会消失


只要我取消选中“限制跨帧脚本,在支持的地方”复选框,我就可以将其作为IFrame正确加载。对于Alert.js模式调用,有什么方法可以做到这一点吗?有不同的方法吗?

XSS问题限制勾选框的替代方法是:

  • (一)
  • (二)

如果您的外部站点是一个可以从JS web资源调用的web服务,那么1是很好的,事实并非如此。2不需要web服务,它是跨文档消息传递技术,但它要求您可以编辑外部网站的JS代码,因为它必须允许来自您域的请求。

您是否尝试过在CRM中使用iframe将外部页面包装到html web资源中,然后使用alert.js打开web资源?@BojanBorisovski我考虑过尝试一下,唯一的问题是“限制跨框架脚本,如果支持”复选框,是表单上的每个iFrame,而不是webresource,因此我不认为这有什么帮助。“限制跨框架脚本,如果支持”复选框,只会阻止在iFrame中的页面中执行脚本,如果您选中了它,则加载到表单上时该页面上的javascript将不会运行。例如,我对触发打印事件的页面设置了一次框架。那个复选框阻止了它。如果您通过iframe将其放入html web资源中,则该复选框无关紧要,因为您可以控制如何将该页面嵌入到web资源中。@BojanBorisovski Javascript运行,但我认为加载gif永远不会消失。请参阅更新至问题我相信在尝试访问页面中的元素时会引发错误,在本例中为Document对象,浏览器将其视为XSS,不允许。嗨,Jordi!我建立了一个网站,启用了CORS来访问我们的CRM环境,但这是徒劳的,在重新阅读您的答案后,您说这是行不通的。我不确定HTML5 MessageChannel将如何在CRM中工作。你能举个简单的例子吗?