当前位置:  开发笔记 > 编程语言 > 正文

跨域ExternalInterface"NPObject上的错误调用方法"

如何解决《跨域ExternalInterface"NPObject上的错误调用方法"》经验,为你挑选了1个好方法。

我试图通过跨域的ExternalInterface启​​用Javascript和Flash之间的通信.当Javascript与SWF位于同一域时,它可以很好地工作.但在一种情况下,HTML驻留在域A上,javascript和flash都驻留在域B上.我已经完成了以下所有操作:

embed标签有allowScriptAccess="always"(并且对象具有作为参数的对象)

我的SWF文件的actionscipt有 Security.allowDomain("*")

我的SWF也打来电话 Security.allowInsecureDomain("*")

域A和域B都有一个/crossdomain.xml文件allow-access-from domain="*"

SWF能够在页面上调用javascript,但是当我使用Javascript来调用ExternalInterface公开的函数时,我得到了

在NPObject上调用方法时出错![插件异常:Actionscript中的错误.使用try/catch块查找错误.]

这是ActionScript 2所以ExternalInterface.marshallExceptions不可用.



1> Geoff..:

你应该只需要两件事就可以了:

1)allowscriptaccess=always将允许您的SWF将内容发送到页面

2) System.security.allowDomain("yourhtmldomain.com");

请注意,它System.security.allowDomain()在AS2中 - 它与AS3或您上面所写的内容不同.

上面的数字2允许domainA上的html页面调用domainB上的swf中的内容.

您的js托管的域在此处无关紧要,因为浏览器将其嵌入到domainA中,该脚本在domainA中执行.

crossdomain.xml主要用于加载你没有做的远程文件,所以你可以删除它,如果你愿意的话.(你可能不想让allow="*"你的主域名有一个crossdomain.xml文件,这是非常糟糕的做法)

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有