【发布时间】:2009-06-24 20:47:27
【问题描述】:
我在服务器上有 WSDL/SOAP 的基本授权机制。如何通过 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 应用程序和服务器在同一个域中。 我的服务器根目录中也有 crossdomain.xml 文件(http://localhost: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>
谢谢, 齐诺维
【问题讨论】:
标签: apache-flex web-services wsdl authorization