Apache flex 如何从FlexWebService传递授权标头?

Apache flex 如何从FlexWebService传递授权标头?,apache-flex,web-services,wsdl,authorization,Apache Flex,Web Services,Wsdl,Authorization,我在服务器上有WSDL/SOAP的基本授权机制。如何通过FlexWebService发送“授权”标题 简化示例: var ws:WebService = new WebService(); ws.wsdl = "http://localhost:8000/api/service.wsdl" var encoder:Base64Encoder = new Base64Encoder(); encoder.insertNewLines = false; encoder.encode("SomeUs

我在服务器上有WSDL/SOAP的基本授权机制。如何通过FlexWebService发送“授权”标题

简化示例:

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应用程序和服务器位于同一个域中。 另外,我的服务器()的根目录中有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

我以前在Flex中从来没有这样做过,但是您正在运行哪个版本的Flash插件?版本9.0.115.0。完全阻止使用该标题,而更高版本允许在crossdomain.xml配置中使用该标题。

D'oh!我在Ubuntu上运行的是AdobeFlexBuilderforLinux的9.0.115.0版本。我仔细检查了这个问题。这就是问题所在。在以后的版本中,效果很好。flex没有从服务器调用crossdomain.xml的问题也得到了解决。当您处于调试模式时,Flex不会调用crossdomain.xml(出于某些奇怪的原因),但当您发布时,它会从服务器调用crossdomain.xml。很高兴了解crossdomain.xml调试/发布的区别。谢谢