2009-09-15 97 views
0

我想弄清楚如何正確設置我的跨域文件。以下是我迄今爲止:Flash/Flex crossdomain.xml幫助

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="all" /> 
    <allow-access-from domain="contoso.com"/> 
    <allow-access-from domain="*.contoso.com"/> 
</cross-domain-policy> 

Flex應用程序被配置在

http://www.contoso.com/webservice.asmx 

訪問一個asp.net web服務,當我瀏覽到:

`http://www.contoso.com/flexapp.html` 

加載應用程序並且工作得很好。然而,當我瀏覽到:

`http://contoso.com/flexapp.html` 

Flex應用程序無法與web服務由於沙箱安全錯誤通信。任何機構知道我需要如何配置我的crossdomain.xml文件,以便用戶不必記得在URL中包含「www」?

謝謝你的幫助。

回答

1

我通常爲我重定向到www的非www域名設置301(永久移動)重定向。我認爲這是一個很常見的做法。另一個選擇是在Flex應用程序中使用相對路徑(儘管WSDL更難)如果您必須創建跨域請求,那麼您還需要指定master policy另一種方法是將Web服務置於ws.contoso.com上並有一個crossdomain策略,允許來自contoso.com和www.contoso.com的請求

+0

謝謝,這讓我走上了正確的道路,我錯過了「allow-http-request-headers-from」元素它在你鏈接的adobe文章中提到過),現在正在工作。 – Daveed 2009-09-16 01:53:08

0

"*.contoso.com"應該工作。你有沒有明確地指定它?

<allow-access-from domain="www.contoso.com"/> 

編輯:爲什麼你需要一個政策文件在這裏擺在首位?兩者都在同一個域中,對嗎?將加載網址更改爲相對路徑。