Frage

Ich habe Basic Authorization Mechanismus auf dem Server für WSDL / SOAP. Wie kann ich "Autorisierung" Header durch Flex WebService senden?

Vereinfachtes Beispiel:

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();

Und ich bin immer einen Fehler:

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

Flex-Anwendung und Server in der gleichen Domäne ist. Auch habe ich crossdomain.xml-Datei im Stamm von meinem Server ( http: // localhost: 8000 / crossdomain.xml ), aber es wird nie von flex (ich weiß aus den Log-Dateien) genannt. Ich werde diese Datei liefern trotzdem:

<?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>

Danke, Zinovii

War es hilfreich?

Lösung

Ich habe noch nie in Flex vor zu tun, aber welche Version der Flash-Plugin sind Sie? Version 9.0.115.0. vollständig blockiert die Verwendung dieser Header, während spätere Versionen es mit Ihrer crossdomain.xml Konfiguration ermöglichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top