我开发了一个flex应用程序(Flex 4.5.1)。我希望flex应用程序只能由我允许的域名使用。加载应用程序后,我会检查远程数据库是否有域名有效。
问题是flash player只返回用户机器的域名。我想要的是flex应用程序所属的网站的域名。例如,如果我浏览我的Flash应用程序的网页是www.abc.com/index.html,我需要www.abc.com或abc.com。那可能吗?我尝试过的每种方法都只返回网站访问者计算机的名称。
由于
答案 0 :(得分:0)
您可以向JavaScript函数添加Flash ExternalInterface调用。 javaScript函数可以返回位置
e.g
//javascript
function getLocation() {
return window.location;
}
和
//AS3
var windowLocation:String=ExternalInterface.call(getLocation) as String;
修改强>
对于那些不想通过Javascript执行此操作的人:您不需要JAVASCRIPT:)
只需从Flash向您的服务器发送请求即可。
然后检查对应于http referrer的服务器端变量(在ColdFusion中,它的CGI.HTTP_REFERRER
。在PHP中,它的$_SERVER['HTTP_REFERER'];
)
这将包含发送请求的swf文件的URL。
答案 1 :(得分:0)
没有100%可靠的方法来获取你的瑞士法郎的当前网址(我之前在MochiMedia论坛上问过这个问题:https://www.mochimedia.com/community/forum/topic/reliably-find-the-page-url#d5fe7e47)。主要问题:
stage.loaderInfo.url
,但会返回swf的网址,该网址可以托管在其他位置(也许也可以使用)。此外,如果该网站使用自定义预加载器,那么它可能是此预加载器的URL而不是您的swf。ExternalInterface
,但首先需要启用Javascript,如果您使用的网站使用iframe嵌入您的swf,它将会中断我使用类似SecureSWF(http://www.kindi.com)的东西,因为他们有网站锁定以及加密等。我无法真正告诉你它是如何工作的,或者它是否与3不同以上方法