Flash 的 URLRequestHeader

太麻烦了。。。

转载:http://args.cn/post/2010/04/flash-urlrequestheader/

 

最近看了一些关于Flash 的 URLRequestHeader的信息,才知道

1.Flash 的 URLRequestHeader的自定义头只能在POST方式下才能发送。

2.Flash 的 URLRequestHeader不准手动发送Referer头域信息。而且在FireFox下Flash使用GET方式读取服务器文件时,不发送引用页地址,

IE下能正确发送。

3. 而且补充一点必须设置 urlRequest.data这个属性。

URLRequestHeader 对象封装了一个 HTTP 请求标头并由一个名称/值对组成。 URLRequestHeader 对象在 URLRequest 类的 requestHeaders 属性中使用。
在 Adobe® AIR 中,应用程序安全沙箱中的内容(如使用 AIR 应用程序安装的内容)可以使用任何请求标头而不会出错。不过,对于在 Adobe AIR 中运行的不同安全沙箱中的内容,使用以下请求标头将会引发运行时错误,且限制的术语不区分大小写(例如,Get、get 和 GET 均不得使用):

在应用程序安全沙箱以外的 Flash Player 和 Adobe AIR 内容中,不能使用以下请求标头,且限制的术语不区分大小写(例如,Get、get 和 GET 均不得使用)。另外,如果使用下划线字符,这也适用于带连字符的词(例如,不允许使用 Content-Length 和 Content_Length):

Accept-Charset、Accept-Encoding、Accept-Ranges、Age、Allow、Allowed、Authorization、Charge-To、Connect、Connection、Content-Length、Content-Location、Content-Range、Cookie、Date、Delete、ETag、Expect、Get、Head、Host、Keep-Alive、Last-Modified、Location、Max-Forwards、Options、Post、Proxy-Authenticate、Proxy-Authorization、Proxy-Connection、Public、Put、Range、Referer、Request-Range、Retry-After、Server、TE、Trace、Trailer、Transfer-Encoding、Upgrade、URI、User-Agent、Vary、Via、Warning、WWW-Authenticate 和 x-flash-version。

URLRequestHeader 对象的长度是受限制的。如果 URLRequestHeader 对象的累计长度(name 属性的长度加 value 属性的长度)或 URLRequest.requestHeaders 属性中使用的 URLRequestHeader 对象数组超过可接受的长度,则应用程序将引发异常。

除非为 URLRequest 类的 requestHeaders 属性中的 ACCEPT 标头指定设置,否则,在 Adobe AIR 中运行的内容会将 ACCEPT 标头设置为以下值:

text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png, application/x-shockwave-flash, video/mp4;q=0.9, flv-application/octet-stream;q=0.8, video/x-flv;q=0.7, audio/mp4, */*;q=0.5
并非所有接受 URLRequest 参数的方法都支持 requestHeaders 属性,请参阅有关调用的方法的文档。例如,FileReference.upload() 和 FileReference.download() 方法不支持 URLRequest.requestHeaders 属性。

由于存在浏览器限制,因此仅对 POST 请求支持自定义 HTTP 请求标头,而对 GET 请求不提供相应支持。

posted @ 2012-03-12 16:56  carlosfu  阅读(547)  评论(0编辑  收藏  举报