【问题标题】:Flex using assql to connect to database, Flex - Security Sandbox violationFlex 使用 assql 连接数据库,Flex - 安全沙箱违规
【发布时间】:2012-12-23 09:35:06
【问题描述】:

我编写了一个连接到本地数据库的小型 flex 项目

代码如下:

    _dbData=new DataBaseData();
    _dbData.username="root";
    _dbData.password="woxnsk";
    _dbData.host="192.168.2.225";
    _dbData.port=3306;
    _dbData.database="query";
    _db=new MyDataBase(_dbData);
    _db.addEventListener(Event.CONNECT, onConnected);
    _db.connect();

    _isDBConnecting=true;

该项目在 flex builder 中运行良好,然后我将其部署在我的 wamp 服务器中,但出现了问题。

当我使用 localhost/myproject/login.html 之类的 url 时,我可以访问数据库 但是如果我将 localhost 更改为 127.0.0.1 或 ip 192.168.2.225,则无法连接到数据库,并且错误是违反安全沙箱。

错误 #2044:未处理的 ioError:文本=错误 #2048:安全沙箱 违规:http://192.168.2.225/bin-debug/QuestionCollecter.swf不能 从 192.168.2.225:3306 加载数据

我已将 crossdomain.xml 放在服务器的根目录中(C:\wamp\www 或 C:\apache-tomcat-6.0.35\webapps\ROOT) crossdomain.xml 文件是:

    <xml version="1.0"?>
    <cross-domain-policy>
        <allow-access-from domain="*" to-ports="*" />
    </cross-domain-policy>

它不起作用....所以有什么问题吗?谁能帮帮我~

【问题讨论】:

    标签: flash apache-flex crossdomain.xml cross-domain-policy


    【解决方案1】:

    1) 您可以检查 allowScriptAccess 和 allowNetworking 选项以将您的 swf 嵌入页面:

    http://livedocs.adobe.com/flex/3/html/help.html?content=wrapper_13.html

    确保授予对您的 swf 的不受限制的访问权限。

    2) 您可以从应用程序的url 属性中提取您的服务器地址。

    3) 您可以通过 Charles 或 HTTPAnalyzer 观察来自您的应用程序的 crossdomain.xml 请求会发生什么,以及 wamp 是否使此文件可用于所有 IP。

    4) 您的数据库是否允许非本地连接?

    【讨论】:

    • 感谢您的建议!发现我的843端口被别的程序占用了,于是终止了它,写了一个servlet监听843端口,问题就解决了!
    猜你喜欢
    • 1970-01-01
    • 2011-07-06
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多