如何从Flex的WebService的传递Authorization头?
-
22-07-2019 - |
题
我有服务器WSDL / SOAP上基本授权机制。我怎么能发送“授权”头通过柔性的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应用程序和服务器都在同一域中。 我也有crossdomain.xml文件在我的服务器的根目录(的http://本地主机:8000 / 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配置。
不隶属于 StackOverflow