2

(ActionScript3) 您好,我正在尝试找出通过第三方网站查看 URLRequest 失败的原因。理想情况下,任何错误都可以在下面的代码中指出,但是,我认为这很好,因为我们做的类似事情很好。

理想情况下是 URLRequest 错误处理,我怎样才能找出为什么 URLRequest 没有从 time.php 中提取信息?即使它只是输出到时间轴上的文本框(在测试环境中完成时一切正常)

非常感谢克雷格

设想:

  • domain.com(服务器 1):file.swf 使用 URLRequest 加载 domain.com/time.php?a=b(因此 PHP 和 SWF 都托管在同一个域和服务器上)

  • example.com(服务器 2):PHP 页面嵌入 file.swf(反过来 URLRequests time.php)

结果:

  • 当您通过浏览器直接访问 file.swf 时,它会从 time.php 加载数据就好了

  • 当您查看嵌入页面 file.swf 时,在服务器 2 上加载失败


文件.swf

var loaderNameHolder;
var loaderNameHolderLoader:URLLoader = new URLLoader();
var loaderNameHolderURLRqst:URLRequest = new URLRequest('http://domain.com/time.php?a=b');
loaderNameHolderLoader.addEventListener(Event.COMPLETE, loaderNameHolderURLFunc);
loaderNameHolderLoader.load(loaderNameHolderURLRqst);
function loaderNameHolderURLFunc(e:Event):void{
    loaderNameHolder = loaderNameHolderLoader.data
    gotoAndStop(loaderNameHolder);
}

安全

  • 在域的根文件夹中有一个跨域 XML,它似乎没有什么区别(或者没有被正确引用/使用)但是正如提到的类似的事情我在不修改这个 XML 的情况下工作得很好
4

3 回答 3

2

这听起来像是一个安全问题,尽管您说您有跨域文件。

您是否使用 Charles ( http://www.charlesproxy.com/ ) 之类的工具检查了 http 调用?这绝对是调试此类问题的最佳方法。

于 2013-04-03T11:11:04.190 回答
1

感谢上面的提示,它们将是很好的资源。

实际问题是请求的 URL 不包含“www”(我认为因为 SWF 嵌入在 WWW 中,所以它来自“外部”域。我认为我需要 www.domain.com 以确保我自己的安全XML)。

克雷格

于 2013-04-04T09:48:32.330 回答
0

尝试添加此代码

Security.allowDomain("*");
Security.loadPolicyFile("http://domain.com/crossdomain.xml");

并使用此处提供的链接阅读 crossdomain.xml:https ://stackoverflow.com/a/9728845/2234089

于 2013-04-03T11:15:16.707 回答