2012-12-23 73 views
0

我寫的連接到本地數據庫Flex中使用assql連接到數據庫時,Flex - 安全沙箱衝突

小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:text =錯誤#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> 

它不工作....所以有什麼不對嗎?誰能幫幫我〜

回答

1

1)您可以檢查allowScriptAccessallowNetworking選擇嵌入你的SWF到頁面:

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

確保不受限制的訪問授予您的SWF。

2)您可以從您的應用程序的url屬性中提取您的服務器地址。

3)您可以通過CharlesHTTPAnalyzer觀看您的應用程序發出的crossdomain.xml請求以及wamp是否使該文件適用於所有IP。

4)您的數據庫是否允許非本地連接?

+0

謝謝你的建議!我發現我的843端口被另一個程序佔用,所以我終止了它,並寫了一個監聽843端口的servlet,問題沒有了! –