【问题标题】:Javascript crossdomain - Flash on domain 1 calling Javascript on domain 2Javascript 跨域 - 域 1 上的 Flash 调用域 2 上的 Javascript
【发布时间】:2011-03-05 00:45:28
【问题描述】:

解释起来有点棘手的问题,但这里是......

1) domain1 上的 swf 文件,读取 domain1 上的 xml 文件以显示数据 2) 还包含打开另一个 html 文件的 ShadowBox 弹出窗口的链接,该文件也托管在 domain1 上 3) 这个 swf 文件也嵌入到 domain2 上的 iFrame 中 4) domain2 在 HTML 中也安装了 ShadowBox

问题基本上归结为跨站点脚本:

domain2 上嵌入的 swf 触发 domain2 ShadowBox 以打开此弹出窗口,但 Flash 中的 javascript 调用来自 domain1 导致跨域权限问题。

任何人都可以想办法解决这个问题吗? JSONP 似乎是一种选择,但我对使用它并不完全满意。 JQuery 有什么方法可以解决这个问题吗?目前还没有找到...

【问题讨论】:

  • jQuery 在 .ajax 调用中内置了 JSONP。

标签: jquery cross-domain jsonp shadowbox


【解决方案1】:

我正在努力理解您的问题,所以我会在我看到的情况下进行解释 - 如果我错了,请告诉我。在 domain1 上,您有一个 swf,它在 javascript 中调用外部接口调用,这会导致在 domain2 上的 iframe 中加载的脚本上发生操作?

如果是这种情况,您可以通过从 swf 进行调用并从等式中删除 externalInterface 来解决相同来源的政策问题。如果目标域(在本例中为 domain2)上的 crossdomain.xml 文件允许,Flash 将允许您对另一个域进行 HTTP 调用(参见此线程:Can someone post a well formed crossdomain.xml sample?

如果我离基地很远,请告诉我。

【讨论】:

  • 不,你很准确!现在的根本问题是(由于各种原因)我们无法将 crossdomain.xml 上传到域的根目录。所以除非你能想到别的东西,否则我认为我们的整个方法都失败了:x
猜你喜欢
  • 1970-01-01
  • 2011-02-25
  • 2013-05-30
  • 2011-04-15
  • 2015-12-22
  • 2011-11-06
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
相关资源
最近更新 更多