我是否需要跨域策略
本文关键字:策略 是否 | 更新日期: 2023-09-27 18:37:06
我正在使用一个flex(3.5)应用程序,其中嵌入了一个嵌入在php页面中的swf,该页面正在与C#asp.net 网站通信,当我通过Visual Studio 的2008和我自己的机器上的php网页在调试模式下运行我的项目时,一切正常。然后我将所有内容移动到Web服务器,现在它只是间歇性地工作,当它不起作用时,在闪存日志中产生以下错误:
"错误:由于缺少策略文件权限,请求者从/php-webpage/swf-file 请求
的资源被拒绝。我已经对策略文件进行了大量阅读,并且确实了解了它们的用途,但我不明白的是,如果我的 php 网页和 C# 项目托管在同一台服务器上,那么我不需要策略文件,因为我没有跨域通信 - 我使用的是同一台服务器?
我在这里遗漏了什么还是只是误解了策略文件?如果不需要,为什么闪存日志会抱怨策略文件权限?
@user1456312,我对C#服务器一无所知,但也许我可以给你一些解决它的想法。
在调试模式下,没有安全限制,因此没有问题。
当您在浏览器中键入 url 地址时,您可以直接获取跨域.xml文件吗?
您将跨域文件放置在哪里,访问程序的 URL 地址是什么?
您可以尝试以下跨域进行测试:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM “/xml/dtds/cross-domain-policy.dtd”>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="*" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>
此文件不适用于生产,因为这意味着完全没有限制
必要时,可以使用 Security.loadPolicyFile(url)
从服务器上的备用位置加载跨域.xml文件。