2009-06-24 67 views
1

我在WSDL/SOAP的服務器上有基本授權機制。我如何通過Flex WebService發送「授權」標題?如何從Flex WebService傳遞授權標頭?

簡單的例子:

var ws:WebService = new WebService(); 
ws.wsdl = "http://localhost:8000/api/service.wsdl" 

var encoder:Base64Encoder = new Base64Encoder(); 
encoder.insertNewLines = false; 
encoder.encode("SomeUser:SomePassword"); 

ws.httpHeaders = {AUTHORIZATION : "Basic " + encoder.toString()}; 

ws.loadWSDL(); 

var operation:AbstractOperation = ws.get_info; 
operation.send(); 

而且我得到一個錯誤:

Error #2096: The HTTP request header AUTHORIZATION cannot be set via ActionScript. 

Flex應用程序和服務器在同一個域中。 另外我在我的服務器的根目錄(http://localhost:8000/crossdomain.xml)中有crossdomain.xml文件,但它永遠不會被flex調用(我從日誌文件中知道)。我會提供這個文件呢:

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

感謝, Zinovii

回答

2

我從來沒有在Flex中之前做到這一點,但你運行的是什麼版本的Flash插件?版本9.0.115.0。完全阻止使用該標題,而更高版本則允許您使用crossdomain.xml配置。

+0

D'oh!我正在Adobe的Adobe Flex builder for linux上運行這個9.0.115.0版本。 – zinovii 2009-06-24 22:09:12