ActionScript Error #2148:
SecurityError: Error #2148: SWF file file:///C:/Documents and Settings/UserProfile/Desktop/flexstore/bin-release/flexstore.swf cannot access local resource myFile.swf. Only local-with-filesystem and trusted local SWF files may access local resources.
Description:
ActionScript Error #2148 can be caused by a number of reasons. If you are using Flex please keep in mind that the bin directory is a special directory that the Flash player allows SWFs ( and other files ) to load from as long as the file is stored in this directory. It will also allow a loaded swf to access network resources (a remote HTTPService call for example). If these files are placed anywhere besides the bin directory, the Flash Player prevents the file from accessing any external resources. You can allow for external access by changing the settings within the FlashPlayer or within Flex. These solutions are listed below
Fix 1 :
If you're loading in XML or other files from a remote sever that isn't hosting the SWF too, make sure you create a crossdomain.xml policy, and put it on the root of your webserver. If you haven't heard about a cross domain policy or need help creating a crossdomain.xml file click the link and I will show you how to create a crossdomain.xml file. View my tutorial on How to Create a crossdomain.xml file and visit the links on the bottom of the page to learn more.
XML Code:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policySYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="www.curtismorley.com" />
<allow-access-from domain="curtismorley.com" />
</cross-domain-policy>
Fix 2:
Within ActionScript you are now able to specify the cross domain access from within the code. I won't get into the guts of this one but if you want to learn more view the Flash / Flex documentation or Adobe LiveDocs - Security Chapter or get Joey Lott's book ActionScript 3 Cookbook By adding this code you will get rid of ActionScript Error #2148 If you are using https:// you will need to use allowInsecureDomain() as shown below. If you are using a local file make sure to target it correctly(i.e. c:\myFolder).
ActionScript Code:
flash.system.Security.allowDomain("http://www.curtismorley.com");flash.system.Security.allowInsecureDomain("http://www.curtismorley.com");
Fix 3:
One hack to get rid of ActionScript Error 2148 is to add these arguments to the compiler (via Properties - Flex Compiler) : -use-network=false . Beware though this will effectively change your cross-domain security.
Good Code:
-use-network=false
Fix 4:
Make sure your Global Security Settings in Flash Player allows local access to the directory your SWF/XML is running from. At the Global Security Settings in Flash Player click on Edit locations >> Add location and then either type in the new location your SWF is at (i.e. c:\myFolder) or browse for the file or folder. Shut down Flash/ Flex and all instances of the Flash Player(including browsers), and then try again. This will eliminate this ActionScript Error #2148. This solution only works for you on your computer. If you cahnge computers or change locations on the web please refer back to Fix 1.
And now you know 2 ways to fix and 2 ways to circumvent ActionScript Error #2418: Security Error
Happy Flashing
分享到:
相关推荐
Flex安全沙箱问题是一个在开发基于...总的来说,解决Flex安全沙箱问题需要深入理解沙箱机制、跨域策略和`crossdomain.xml`文件的配置,同时关注服务器端的实现细节,以确保应用程序既能正常运行,又能保障用户的安全。
网上的方法很多,我看了好多,但是就是不管用,我的情况是,在程序没发布时,直接运行没错误,但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从 ...
但在实际应用中,由于跨域策略的限制,可能会遇到Error #2048这样的错误提示,这通常意味着存在Flex沙箱安全问题。 #### 二、Error #2048 错误解析 **Error #2048**:此错误代码通常表示Flash Player或Flex应用...
在使用ArcGIS API for Flex开发WebGIS应用时,安全沙箱问题是一个重要的考虑因素,它涉及到数据的安全性和应用程序的跨域访问控制。Flex是Adobe Flash平台的一部分,用于创建丰富的互联网应用,而ArcGIS API for ...
- **问题分析**:使用默认终端代理时遇到的安全沙箱冲突,解决方法包括修改安全策略文件或更改目标destination以允许所需的URL。 #### 4. No destination with id XXX registered 错误信息:...
错误#2048提示安全沙箱冲突,这通常发生在跨域访问时。确保已正确配置跨域策略文件以允许Flex与后端服务通信。 7. **RPC Fault faultString="MessagingError message='Destination 'fluorine' either does not ...
Flex应用程序在访问跨域资源时受到所谓的“安全沙箱”限制,这是为了保护用户的安全和隐私。例如,当一个Flex应用程序试图从不同域名的服务器获取数据时,如果没有适当的配置,将会遇到安全错误。解决这一问题的一种...
- 调用过程中可能遇到的错误包括:找不到方法、安全沙箱限制、版本不兼容等,需要仔细调试和解决。 - Flash内容在HTML页面中嵌入后,需要正确设置SWFObject参数,以便Flex可以正确识别和调用。 4. **源码分析**:...
在Tomcat的`\webapps\ROOT`目录下添加`crossdomain.xml`文件,允许来自任何域名的访问,以解决安全沙箱限制。 总结起来,实现Flex与Java通信涉及多个步骤,包括配置BlazeDS、设置XML文件、处理部署问题、满足Flex类...
6. **安全性与限制**:由于安全沙箱的存在,不是所有的网页都能在IFrame中正常运行,特别是涉及到跨域访问时。开发者需要了解Flash Player的安全策略,并确保内容符合安全规定。 7. **性能优化**:在Flex应用中嵌入...
- 虽然Flex可以直接访问本地文件,但为了用户安全,Flash Player和AIR有严格的沙箱限制,防止恶意应用滥用本地文件系统。 - 用户必须明确授权才能访问本地文件,这是通过用户点击文件选择对话框来实现的。 5. **...
Flex ApplicationDomain 是Adobe Flex框架中的一个重要概念,它在ActionScript 3.0中扮演着核心角色。ApplicationDomain 是一个安全...在实际开发过程中,结合这些知识可以有效地解决类管理、资源优化和安全性等问题。
为了解决这个问题,可以将文件放置在允许访问的目录,或者如果是在Adobe AIR环境中,可以通过修改应用程序的部署描述文件(例如,AIR descriptor file)来扩展安全沙箱权限。 3. 竞态条件(Race Condition): 如果...
1. **安全特性**:这些可能包括沙箱机制、同源策略强化、防止XSS攻击的改进、隐私保护功能等,旨在提高用户浏览网页的安全性。 2. **更新频率**:了解浏览器安全特性的更新频率有助于用户及时采取必要的安全措施。 ...
它分为三个沙箱:本地、网络和安全沙箱,每个都有不同的权限。 11. 异步编程:使用Promise和Future概念,AS3.0支持非阻塞I/O操作,使得处理大型数据或网络请求时不会阻塞应用程序的其他部分。 12. Flash ...
10.2 离开沙箱 393 10.2.1 问题 393 10.2.2 解决方案 394 10.2.3 工作原理 394 10.3 为应用添加Spring BlazeDS支持 406 10.3.1 问题 406 10.3.2 解决方案 406 10.3.3 工作原理 406 10.4 通过...
10.2 离开沙箱 393 10.2.1 问题 393 10.2.2 解决方案 394 10.2.3 工作原理 394 10.3 为应用添加Spring BlazeDS支持 406 10.3.1 问题 406 10.3.2 解决方案 406 10.3.3 工作原理 406 10.4 通过...
使用`onload`事件或`defer`属性,确保iFrame内容加载完成后再进行高度计算,防止因内容未加载完全导致的错误高度。 在提供的压缩包中,`index.html`可能是包含iFrame的主页面,而`iframe.html`则是被嵌入的子页面...
3.12 处理系统安全:处理安全限制,如沙箱模型和跨域策略。 第四章“数字和数学”涵盖了数值计算和格式化: 4.0 简介:介绍了数字操作和数学函数在ActionScript 3中的应用。 4.1 数字表示:解释了不同类型的数字...