xml跨域问题?

zjkboy 2008-08-19 10:46:05
xml和swf是在同一目录下的
我代码里是先取得要load的xml绝对路径 然后加载xml 处理。。。。
IDE里一切正常

但是脱离了IDE 单独运行
报错:

SecurityError: Error #2148: SWF 文件 file:///D|/我的文档/My%20Documents/Flex%20Builder%203/zjk/flex%5Fbin/zjk.swf 不能访问本地资源 file:///D|/我的文档/My%20Documents/Flex%20Builder%203/zjk/flex%5Fbin/zjk.xml。只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源。
at flash.net::URLStream/load()
at flash.net::URLLoader/load()
at zjk/init()[D:\我的文档\My Documents\Flex Builder 3\zjk\src\zjk.mxml:18]
at zjk/___zjk_Application1_creationComplete()[D:\我的文档\My Documents\Flex Builder 3\zjk\src\zjk.mxml:2]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:9051]
at mx.core::UIComponent/set initialized()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:1167]
at mx.managers:ayoutManager/doPhasedInstantiation()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:698]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8460]
at mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8403]


不知道这么问题怎么解决
大大们指教下啊
...全文
606 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
do66cool 2010-01-05
  • 打赏
  • 举报
回复
唉,2008年的问题,我却现在遇到要解决……o,MY GOD!
do66cool 2010-01-05
  • 打赏
  • 举报
回复
我也是遇到同样郁闷问题,不过放到iis里ok啦
john_shen_tiro1 2008-08-23
  • 打赏
  • 举报
回复
我觉得应该放到server里面去试下
易之盛软件 2008-08-20
  • 打赏
  • 举报
回复
放在网上,又要取绝对路径?

楼主要实现什么功能呢?
不会飞的鱼 2008-08-20
  • 打赏
  • 举报
回复
你肯定是本地直接浏览了,所以才出现这个问题。
应该放入server容器内去测试,比如apache或者iis内
不会飞的鱼 2008-08-20
  • 打赏
  • 举报
回复
你肯定是本地直接浏览了,所以才出现这个问题。
应该放入server容器内去测试,比如apache或者iis内
不会飞的鱼 2008-08-20
  • 打赏
  • 举报
回复
你肯定是本地直接浏览了,所以才出现这个问题。
应该放入server容器内去测试,比如apache或者iis内
不会飞的鱼 2008-08-20
  • 打赏
  • 举报
回复
楼上C2U说的比较合理
不会飞的鱼 2008-08-20
  • 打赏
  • 举报
回复
放到网上如何用绝对路径呢,思路就不对
zjkboy 2008-08-20
  • 打赏
  • 举报
回复
再没人支招了吗???
zjkboy 2008-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 c2u 的回复:]
3)修改FLASH的发布设置,让其只允许访问本地资源(默认是只允许访问 network)
[/Quote]

这个。。。
怎么修改 我白痴
zjkboy 2008-08-20
  • 打赏
  • 举报
回复
谁能帮我解决这个什么乱糟糟的
只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源。

我真把脑袋给你
zjkboy 2008-08-20
  • 打赏
  • 举报
回复
我真郁闷~!!!!

this.url.substr(0,this.url.lastIndexOf("/")) + "/zjk.xml"

这是是去绝对路径
不管你挂到虚拟主机的什么位置 swf需要 load 的 都是绝对路径

现在大家讨论来讨论去 无非就是2句话的区别
loader.load(new URLRequest("zjk.xml"));和
loader.load(new URLRequest(this.url.substr(0,this.url.lastIndexOf("/")) + "/zjk.xml"));

按你们说的 如果用相对路径 就是 loader.load(new URLRequest("zjk.xml"));啦


你们可以试验一下
swf同路径下 loader.load(new URLRequest("zjk.xml"));
在IDE里一切正常!!!

但是你把工程文件flex_bin
拿出来 拿到哪都可以
这时候swf就找不到xml在哪了 所以必须给它个绝对路径

谁要是说拿出来 swf还能load的到文件 我把脑袋给你
zjkboy 2008-08-19
  • 打赏
  • 举报
回复
顶一下

肯定是要取到绝对路径的

做的程序放到网上 一定要绝对路径
c2u 2008-08-19
  • 打赏
  • 举报
回复

flash 不允许调用本地资源,解决办法:

1)你可以把绝对路径改成相对路径,这样他会认为是互联网上的资源……
2)添加一个安全策略文件到你的FLASH PLAYER 安装目录,允许访问你机器上的文件
3)修改FLASH的发布设置,让其只允许访问本地资源(默认是只允许访问 network)

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧