J'ai un mécanisme d'autorisation de base sur le serveur pour WSDL/SOAP. Comment envoyer l'en-tête "Autorisation" via Flex WebService?Comment passer l'en-tête Autorisation de 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.
application Flex et le serveur sont dans le même domaine. J'ai aussi un fichier crossdomain.xml à la racine de mon serveur (http://localhost:8000/crossdomain.xml) mais il n'est jamais appelé par flex (je sais à partir des fichiers journaux). Je fournirai ce dossier de toute façon:
<?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
D'oh! Je cours exactement cette version 9.0.115.0 sur Ubuntu d'Adobe Flex Builder pour Linux. – zinovii
Je revérifie ce problème. C'était le problème. Sur les versions ultérieures fonctionne très bien. Le problème que flex n'a pas appelé crossdomain.xml du serveur a également été résolu. Lorsque vous êtes en mode DEBUG, Flex n'appelle pas crossdomain.xml (pour une raison étrange) mais lorsque vous libérez, il appelle crossdomain.xml du serveur. – zinovii
Bon à savoir à propos de la différence de débogage/diffusion crossdomain.xml. Merci! –