2011-06-01 15 views
5

Quiero agregar un encabezado de autorización a mis solicitudes. añadí la siguiente línea en crossdomain.xml del servidor:¿Cómo puedo enviar encabezados personalizados con URLRequest

<allow-http-request-headers-from domain="*" headers="Authorization"/> 

Y aún así, la cabecera no se envía (comprobado con Wireshark).

¿Echo de falta algo?

EDIT:

el código de la urlRequest:

var request:URLRequest = new URLRequest(); 
request.method = URLRequestMethod.POST; 
request.url = this.uploadURL; 
request.data = post; 

var requestHeader:URLRequestHeader = new URLRequestHeader("Authorization", "Basic ZXNhcGlyK2xhQGdtYWlsLmNvbTpFcmlrU2FwaXIyOQ==");     


request.requestHeaders.push(requestHeader); 
+0

publique un código de creación de UrlRequest. – Eugeny89

Respuesta

8

Aquí es una implementación que hice recientemente que funcionó muy bien para mí:

var url:String = _baseURL + "/utils.php"; 

var headers:Array = [ 
    new URLRequestHeader("_sessionKey", _sessionKey), 
    new URLRequestHeader("_userId", _sessionUserId) 
]; 

var request:URLRequest = new URLRequest(); 
request.requestHeaders = headers; 
request.method = URLRequestMethod.POST; 
request.url = url; 

/////////////////// 

var loader:URLLoader = new URLLoader(); 
loader.dataFormat = URLLoaderDataFormat.TEXT; //don't know if this is really needed 
loader.addEventListener(Event.COMPLETE, handleSuccess); 
loader.addEventListener(IOErrorEvent.IO_ERROR, handleError); 
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleError); 

loader.load(request); 

La única gran diferencia que pueda ver es que estoy creando una nueva matriz con los encabezados, y luego la asigno a la propiedad requestHeaders de request, en lugar de crear una nueva URLRequestH eader y tratando de empujarlo directamente en request.requestHeaders. Todo lo demás se ve bastante bien para mí.

Espero que esto ayude! ¡Y buena suerte!

+4

Tenga en cuenta que Flash puede [solo enviar encabezados personalizados para solicitudes 'POST'] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html#requestHeaders), no las solicitudes 'GET'. –

+1

Otro descargo de responsabilidad importante: no se pueden configurar todos los encabezados (especialmente los encabezados de Autorización y Cookie): http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequestHeader.html –

Cuestiones relacionadas