当两个框架具有相同的域2级别时,使用JavaScript的跨域脚本是否有效?

当两个框架具有相同的域2级别时,使用JavaScript的跨域脚本是否有效?,javascript,cross-domain-policy,Javascript,Cross Domain Policy,我有一个场景,其中一个.net应用程序由SAP portal托管 SAP门户域:portalURL.al.xx.company.com 应用服务器域:AppURL.ss.xx.company.com 正如您所注意到的,门户和应用程序服务器域在上不相同1级(即,在1级上,门户域将是al.xx.company.com,应用程序服务器将是ss.xx.company.com) 但是,在2个级别上,门户和应用服务器域都是相同的。(即xx.company.com) 在我的JavaScript代码中,我将

我有一个场景,其中一个.net应用程序由SAP portal托管

  • SAP门户域:portalURL.al.xx.company.com
  • 应用服务器域:AppURL.ss.xx.company.com
正如您所注意到的,门户和应用程序服务器域在上不相同1级(即,在1级上,门户域将是al.xx.company.com,应用程序服务器将是ss.xx.company.com)

但是,在2个级别上,门户和应用服务器域都是相同的。(即xx.company.com)

在我的JavaScript代码中,我将document.domain对象设置为xx.company.com。 但是,我仍然收到“权限被拒绝”错误

portal和appserver的协议相同


只有在1级以上的域相同的情况下,相同来源法下的跨域脚本才能工作吗?请告诉我。

是的,同一原产地政策将否认这一点。这两个帧必须位于完全相同的域,甚至是相同的端口上

但是,
document.domain
应该可以解决这个问题。如果它对您不起作用,请记住,您必须在两个框架中将
document.domain
设置为
xx.company.com
(并且,如果您正沿着其他框架的层次结构向上工作以达到该目的(例如
top.frame2
),您还需要为这些其他框架设置它(
top


但是,如果您有权访问所有代码,则可以使用

解决此问题。是的,同一来源策略将拒绝此操作。这两个帧必须位于完全相同的域上,甚至相同的端口上

但是,
document.domain
应该可以解决这个问题。如果它对您不起作用,请记住您必须在两个框架中将
document.domain
设置为
xx.company.com
(并且,如果您正在向上提升其他框架的层次结构以达到此目的(例如
top.frame2
)您还需要为其他帧设置它(
top


但是,如果您可以访问所有代码,那么您可以使用

来解决此问题。请看一看,尝试考虑。

请看,尝试考虑。

谢谢。这听起来很有希望。在这种情况下,另一个有问题的框架是SAP portal。而.Net应用程序正在尝试检索SAP对象,如top.EPCM和methods,如top.SetDirty()。是否可以在SAP端设置object.domain属性?我不知道是否可以在SAP portal上编写脚本。谢谢。这听起来很有希望。在这种情况下,另一个有问题的框架是SAP portal。而.Net应用程序正在尝试检索SAP对象,如top.EPCM和方法,如top.SetDirty()。是否可以在SAP端设置object.domain属性?我不知道是否可以在SAP portal上编写脚本。