我们在我们的ASP.NET应用程序中使用了一个闪存上传器,它对我们的大多数客户端都很好。然而,对于一些在其组织中安装了代理服务器的用户来说,上传失败会导致系统崩溃。在调查这个问题时,我发现这是由于代理服务器发起的"407身份验证所需“请求造成的。当我们尝试切换在HTTPS下运行的整个网站时,这个问题似乎已经解决了,但这在整个应用程序中引发了其他500个错误。作为临时修复,我只为上传组件启用了HTTPS,使站点在HTTP下运行。这似乎解决了这个问题。
但是,在我期待永久修复时,我正在考虑在我的Flash代码中处理代理异常(407),并尝试用一个HTTPS调用重新发出它(但不确定这是否是允许的)。当我试图处理HTTPStatusEvent时,我使用fiddler正确地获得了异常,但是没有进一步的请求,尽管我通过HTTPS强制上传请求。请找到我正在做的代码示例(ActionScript Flex 3)
_file.addEventListener(HTTPStatusEvent.HTTP_STATUS,OnHttpError); 私有函数OnHttpError(事件:HTTPStatusEvent):void{ if (event.status==407){ Upload(true);} HandleExceptions("Http错误:",event.status,"“);}this.dispatchEvent(事件);}公共函数上传(enableHttps:Boolean=false):void{ _uploading = true;_bytesUploaded = 0;
var uploadURLTemp:String = _uploadUrl;
if(enableHttps==true){
uploadURLTemp = uploadURLTemp.replace("http://","https://");
}
_file.upload(new URLRequest(uploadURLTemp));
}_file对象是FileReference对象,_uploadURL是服务器中的上传处理程序url。我不知道我是否获准这样做,或是否有更好的方法来处理这件事。
任何想法或想法都将不胜感激。
问候
谢林
发布于 2013-08-14 01:40:29
至于您正在经历的错误,我同意这听起来像是后端问题,而不是Flash问题。
一般来说,在闪存中执行HTTPS调用最困难的部分是设置和加载crossdomain.xml策略。如果您正在进行的这些https调用是有效的,那么我假设您已经配置好了所有的东西。
但是,如果您还没有这样做的话,这里有一些事情需要考虑:
但是,在我期待永久修复时,我正在考虑在我的Flash代码中处理代理异常(407),并尝试用一个HTTPS调用重新发出它(但不确定这是否是允许的)。
只要SWF加载了一个有效且配置正确的crossdomain.xml文件,您就可以调用或重新调用http、https甚至套接字连接。
我只想知道,由于HTTP对您来说似乎是不稳定的,所以在您解决代理问题之前,很可能更容易使用https。
https://stackoverflow.com/questions/18221643
复制相似问题