Domanda

Ho un meccanismo di autorizzazione di base sul server per WSDL / SOAP. Come posso inviare " Autorizzazione " intestazione tramite Flex WebService?

Esempio semplificato:

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

E visualizzo un errore:

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

L'applicazione Flex e il server si trovano nello stesso dominio. Inoltre ho il file crossdomain.xml nella radice del mio server ( http: // localhost: 8000 / crossdomain.xml ) ma non viene mai chiamato da flex (lo so dai file di registro). Fornirò comunque questo file:

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

Grazie, Zinovii

È stato utile?

Soluzione

Non ho mai dovuto farlo prima in Flex, ma quale versione del plugin Flash stai utilizzando? Versione 9.0.115.0. blocca completamente l'uso di quell'intestazione, mentre le versioni successive lo consentono con la tua configurazione crossdomain.xml.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top