gpt4 book ai didi

flash - AS3 使用加载程序加载受 htaccess 保护的文件

转载 作者:行者123 更新时间:2023-12-01 11:56:32 25 4
gpt4 key购买 nike

我正在尝试将托管在站点上的外部 SWF 加载到本地 SWF 文件中。外部 SWF 位于使用 htaccess 的密码保护目录中。

这是我目前正在尝试使用的代码:

var loaderUrlRequest:URLRequest = new URLRequest("http://www.my-website.com/externalFlashFile.swf");
loaderUrlRequest.requestHeaders.push(new URLRequestHeader("Authorization", "Basic " + $Base64.encode("username:password")));
loaderUrlRequest.method = URLRequestMethod.POST;
loaderUrlRequest.data = true;
var loader:Loader = new Loader();
addChildAt(loader, 0);
loader.load(loaderUrlRequest);

文件URL、用户名、密码、base64编码均已检查无误。

但是,我收到以下错误:

Error opening URL 'http://www.my-website.com/externalFlashFile.swf'
Error #2044: Unhandled IOErrorEvent:. text=Error #2036: Load Never Completed.

有什么想法我可能做错了什么,或者是否有更好的方法从纯 Flash 的角度来解决这个问题?

谢谢。

最佳答案

White whale, holy grail

In Adobe® AIR®, content in the application security sandbox (such as content installed with the AIR application) can use any request headers, without error. However, for content running in Adobe AIR that is in a different security sandbox, or for content running in Flash® Player, using following request headers cause a runtime error:

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, If-Modified-Since, Keep-Alive, Last-Modified, Location, Max-Forwards, Options, Origin, 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.

URLRequestDefaults.setLoginCredentialsForHost: Sets default user and password credentials for a selected host. ... Only Adobe® AIR® content running in the application security sandbox can use the URLRequestDefaults class.

因此,您只有一个选择:从需要授权的那个域的网页加载您的 swf。在加载 swf 之前,您将完成 http 授权步骤,浏览器将维护其余部分。

事实上,当您尝试访问 http 授权背后的内容时,服务器会发出代码为 401 的 http 响应(除非您事先发送授权 header )。 Flash Player 对此无能为力,只有 AIR 运行时能够以任何方式发送授权 header 。

关于flash - AS3 使用加载程序加载受 htaccess 保护的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com