Question

J'ai un mécanisme d'autorisation de base sur le serveur pour WSDL / SOAP. Comment je peux envoyer " Autorisation " en-tête via Flex WebService?

Exemple simplifié:

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

Et je reçois une erreur:

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

L’application Flex et le serveur appartiennent au même domaine. De plus, j'ai un fichier crossdomain.xml à la racine de mon serveur ( http: // localhost: 8000 / crossdomain.xml ) mais il n’est jamais appelé par flex (je le sais par les fichiers journaux). Je fournirai quand même ce fichier:

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

Merci, Zinovii

Était-ce utile?

La solution

Je n'ai jamais eu à faire cela auparavant dans Flex, mais quelle version du plug-in Flash utilisez-vous? Version 9.0.115.0. bloque complètement l'utilisation de cet en-tête, alors que les versions ultérieures le permettent avec votre configuration crossdomain.xml.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top