2011-02-14 52 views
2

我已經在Python Gae SDK中創建了一個flex應用程序,並且我得到了錯誤2048,所以我將一個crossdomain.xml放在了靜態文件夾下。 crossdomain.xml文件是以下幾點:如何在Python中配置flex crossdomain.xml Google App Engine Sdk

<?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> 

而且,我加在app.yaml中的以下內容:

- url: /crossdomain.xml 
    static_files: static/crossdomain.xml 
    upload: static/crossdomain.xml 

不過,我還是得到了錯誤2048。因此,我想知道是什麼我需要配置或錯過我的情況,以及如何解決這個錯誤。

請指教。謝謝。

+0

我對Google App Engine的瞭解不多,也不是目錄結構;但crossdomain.xml文件必須位於您正在訪問遠程服務的服務器的Web根目錄中。您不清楚您在哪些方面將它與您的應用以及您打電話的服務相關聯。這有幫助嗎? – JeffryHouser

+0

感謝您的評論。對於Gae,我們無法直接訪問其文件系統,我們需要在app.yaml中設置服務或文件。 – michael

+0

這不是重要的文件系統,它是對FlashPlayer非常重要的'domain.com/crossdomain.xml'位置。 – ocodo

回答

4

我沒有使用與Flash crossdomain.xml的,但我有Unity3d。我已經得到它的工作,你有什麼看起來是正確的。

您是否訪問了yoursite.com/crossdomain.xml以確保它在瀏覽器中可見?

如果Flash是真的挑剔你可能需要指定一個MIME類型

- url: /crossdomain.xml 
    mime_type: text/xml 
    static_files: static/crossdomain.xml 
    upload: static/crossdomain.xml 

您還可能要檢查你的驗證程序的crossdomain.xml,以確保你」(文本/ xml或application/XML)不要錯過一個/>或類似的東西。

此外,檢查出html5boilerplate's crossdomain.xml。他們的限制最少的版本應該可以在任何網站上工作:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 


<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html --> 

<!-- Most restrictive policy: --> 
<!-- 
    <site-control permitted-cross-domain-policies="none"/> 
--> 


<!-- Least restrictive 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"/> 
<!-- 
    If you host a crossdomain.xml file with allow-access-from domain=「*」  
    and don’t understand all of the points described here, you probably  
    have a nasty security vulnerability. ~ simon willison 
--> 

</cross-domain-policy> 
+0

謝謝卡爾文,感謝您的幫助。我可以通過「http:// localhost:8080/crossdomain.xml」來查看crossdomain.xml。我嘗試添加「mime_type:text/xml」,實際上我已經嘗試過在發佈問題之前使用crossdomain.xml,但我仍然收到錯誤2048. – michael

+0

您是否從本地主機以外的源中提取數據?因爲我認爲該域名需要允許跨域訪問。有一點我也有'',但是它的限制性更強。 – Calvin

+0

其他域名已經有crossdomain.xml,我也可以訪問它。 – michael

1

FlashPlayer正在尋找URL域根目錄中的crossdomain.xml文件,例如,

domain.com/crossdomain.xml 

是FlashPlayer想要找到它的地方。

但是,您可以使用Security.loadPolicyFile(url)從服務器上的其他位置加載crossdomain.xml文件。

More info on Adobe livedocs

+0

感謝您的回答。 Gae很難定義域根。請參閱更新。 – michael

+0

我已經試過Security.loadPolicyFile(url)。 crossdomain.xml可以加載,但我仍然得到錯誤。 – michael

相關問題