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

Eri*_*pir 5 apache-flex flash actionscript-3

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

<allow-http-request-headers-from domain="*" headers="Authorization"/>
Run Code Online (Sandbox Code Playgroud)

然而,标题不会发送(使用Wireshark检查).

我错过了什么吗?

编辑:

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);
Run Code Online (Sandbox Code Playgroud)

Ian*_*Ian 9

这是我最近制作的一个对我有用的实现:

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);
Run Code Online (Sandbox Code Playgroud)

我能看到的唯一重大区别是我正在创建一个带有标题的新数组,然后将其分配给requestHeaders属性request,而不是创建新的URLRequestHeader并尝试直接将其推入request.requestHeaders.其他一切对我来说都很好看.

希望这可以帮助!还有祝你好运!

  • 请注意,Flash可以[仅发送`POST`请求​​的自定义标题](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html#requestHeaders),而不是`GET`请求. (4认同)