如何使用 URLRequest 发送自定义标头

问题描述:

我想在我的请求中添加授权标头.我在服务器的 crossdomain.xml 中添加了以下行:

I want to add Authorization header to my requests. I added the following line in crossdomain.xml of the server:

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

仍然没有发送标头(使用 Wireshark 检查).

And still, the header is not sent (checked with Wireshark).

我错过了什么吗?

urlRequest 的代码:

the code of the 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);

这是我最近制作的一个非常适合我的实现:

Here's an implementation that I recently made that worked great for me :

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

我能看到的唯一大不同是我正在创建一个包含标头的新数组,然后将其分配给 requestrequestHeaders 属性,而不是创建一个新的 URLRequestHeader 并尝试将其直接推送到 request.requestHeaders.在我看来,其他一切都很好.

The only big difference that I can see is that I am creating a new array with the headers in it, then assigning that to the requestHeaders property of request, instead of creating a new URLRequestHeader and trying to push it directly into request.requestHeaders. Everything else looks pretty good to me.

希望这有帮助!祝你好运!

Hope this helps! And good luck!